更换过时的mcrypt_cbc我有一个旧的算法进行编码,我想用PHP 7与mcrypt_encrypt
public function encriptarPass($cadena)
{
$extra = (strlen($cadena)%8);
for ($i = $extra; $i < 8; $i++) {
$cadena .= chr(8-$extra);
}
$key = "stack";
$iv = "stack";
return strtoupper(bin2hex(mcrypt_cbc(MCRYPT_3DES, $key, $cadena, MCRYPT_ENCRYPT, $iv)));
}
使用我试着用mcrypt_encrypt更换mcrypt_cbc密码和我得到这个错误:
mcrypt_encrypt(): Module initialization failed
我想更新算法以使用存储在数据库中的旧密码。 我知道我应该使用bcrypt或其他算法,但目前我需要更新这个旧算法
最好不要使用mcrypt的,它是放弃的,已经多年没有更新,不支持标准的PKCS#7(姓PKCS#5)填充,只非标准的null填充,甚至不能用于二进制数据。 mcrypt有很多优秀的[bug](https://sourceforge.net/p/mcrypt/bugs/)可以追溯到2003年。反而考虑使用[defuse](https://github.com/defuse/php-encryption)它正在维护和正确。 – zaph