我正在尝试将加密的 cookie 存储在 PHP 应用程序中,并实现了 2 个不同的加密库以使其正常工作。
两种实现在部署到服务器时都会在调用我的加密函数时产生致命异常。但是,在我的本地开发环境中,两种加密实现都可以成功运行。
我的 open_ssl 实现代码(适用于本地主机,不适用于远程服务器):
set_encrypted_cookie("foo","my_cookie_name");
function set_encrypted_cookie($msg,$name){
$key = '0123456qwerty'; // Key is stored externally but defined locally for debugging
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$encryptedStr = openssl_encrypt($msg, 'aes-256-cbc', $key, OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING, $iv);
setcookie($name,$encryptedStr,0,'/');
}
关于为什么服务器可能不允许 openssl_encrypt() 函数执行的任何想法?