我对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中迷路了,因为我的版本不支持hex2bin。
任何帮助都是最好的。
提前感谢
发布于 2013-08-13 18:07:06
我刚刚测试过它,正如你所猜测的那样,它可以向后工作。这没什么好惊讶的。
$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会包含"hello“。
也许您在解密阶段没有包含用于加密的相同初始化向量?
使用$iv = mcrypt_create_iv(16);创建它并重用它进行解密,否则它将无法工作。
编辑:
如果您必须使用PHPPHP5.4,请使用此hex2bin replacement。
https://stackoverflow.com/questions/18205936
复制相似问题