更換過時的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