我有一段加密的文本需要解密。它使用 AES-256-CBC 加密。我有加密的文本、密钥和 iv。但是,无论我尝试什么,我似乎都无法让它发挥作用。
互联网建议 mcrypt 的 Rijndael 密码应该能够做到这一点,所以这就是我现在所拥有的:
function decrypt_data($data, $iv, $key) {
$cypher = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
// initialize encryption handle
if (mcrypt_generic_init($cypher, $key, $iv) != -1) {
// decrypt
$decrypted = mdecrypt_generic($cypher, $data);
// clean up
mcrypt_generic_deinit($cypher);
mcrypt_module_close($cypher);
return $decrypted;
}
return false;
}
就目前而言,我收到 2 个警告,输出是乱码:
Warning: mcrypt_generic_init() [function.mcrypt-generic-init]: Key size too large; supplied length: 64, max: 32 in /var/www/includes/function.decrypt_data.php on line 8
Warning: mcrypt_generic_init() [function.mcrypt-generic-init]: Iv size incorrect; supplied length: 32, needed: 16 in /var/www/includes/function.decrypt_data.php on line 8
任何帮助,将不胜感激。