PHP Mycrpyt使用bin2hex解密问题

时间:2013-08-13 09:52:32

标签: php encryption hex bin

我很擅长使用PHP进行加密。如何通过以下返回的加密解密输出?

$key = "123456";
$text = "hello";
$cipher_alg = MCRYPT_RIJNDAEL_128;

$encrypted_body = mcrypt_encrypt($cipher_alg, $key, $text , MCRYPT_MODE_CBC, $iv);
$encrypted_body_hex = bin2hex($encrypted_body);
$encrypted_body_hex = strtoupper($encrypted_body_hex);

我想如果我只是向后工作就可以了(strtolower,hex2bin,然后通过mcrypt_decrypt提供它)但我没有运气。

我认为我迷失了bin2hex,因为我的PHP版本不支持hex2bin。

任何帮助都会很棒。

提前致谢

1 个答案:

答案 0 :(得分:0)

我刚刚对它进行了测试,它就像你猜到的那样向后工作。没有惊喜。

$decrypted_hex = strtolower($encrypted_body_hex);
$decrypted_hex = hex2bin($decrypted_hex);
$text_decrypted = mcrypt_decrypt($cipher_alg, $key, $decrypted_hex, MCRYPT_MODE_CBC, $iv); 

$text_decrypted然后包含“你好”。

也许您没有在解密阶段包含用于加密的相同初始化向量?

使用$iv = mcrypt_create_iv(16);创建并重新使用它进行解密,否则无效。

编辑:

如果必须使用PHP< = 5.4,请使用此hex2bin replacement