У меня есть старый алгоритм для кодирования паролей, которые я хочу использовать с PHP 7
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_cbc на mcrypt_encrypt, и я получаю эту ошибку:
mcrypt_encrypt (): Ошибка инициализации модуля
Я хочу обновить алгоритм для работы со старыми паролями, хранящимися в базе данных. Я знаю, что должен использовать bcrypt или другой алгоритм, но на данный момент мне нужно обновить этот старый алгоритм
Эти две функции возвратятся.
function encriptarPass($cadena){ $extra = (strlen($cadena)%8); for($i = $extra; $i < 8; $i++) { $cadena .= chr(8-$extra); } $key = "stack"; $iv = "stack111"; return strtoupper(bin2hex(mcrypt_cbc(MCRYPT_3DES, str_pad($key, 24, "\0"), $cadena, MCRYPT_ENCRYPT, $iv))); } function encriptarPass2($cadena){ $extra = (strlen($cadena)%8); for($i = $extra; $i < 8; $i++) { $cadena .= chr(8-$extra); } $key = "stack"; $iv = "stack111"; return strtoupper(bin2hex(mcrypt_encrypt(MCRYPT_3DES, str_pad($key, 24, "\0"), $cadena, MCRYPT_MODE_CBC, $iv))); }
Пример:
echo encriptarPass('test987x'); // Writes 10C9B50682CC21909AC4346CDFC4586E echo encriptarPass2('test987x'); // Writes 10C9B50682CC21909AC4346CDFC4586E