我很擅长使用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。
任何帮助都会很棒。
提前致谢
答案 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。