你应该用 mcrypt_create_iv 代替 md5(md5($key)) 生成初始化向量。用密文和盐存储它。
mcrypt_create_iv
md5(md5($key))
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC)); $enc_value=base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $value, MCRYPT_MODE_CBC, $iv)); return array("enc_value"=>$enc_value, "salt"=>$salt, "iv"=>$iv);
我的两分钱......你的随机字符串并不是随机的,因为你使用的是基于时间的函数,而是考虑 openssl_random_pseudo_bytes
其次,因为你没有明确提到它,你会想要使用它 SSL / SSH 对于那些类型的数据交易。
对于您的私钥,希望配置文件位于可公开访问的目录之外,而不是位于共享环境中。