PHP7.1 mcrypt альтернатива

Функция Mcrypt устарела с PHP 7.1.0.

Мои устаревшие функции кодирования/декодирования строки:

$key: secret key
$str: string


$encoded = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $str, MCRYPT_MODE_CBC, md5(md5($key))));

$decoded = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($str), MCRYPT_MODE_CBC, md5(md5($key))), "\0");

Можете ли вы предложить несколько альтернатив?

Ответ 1

Вместо этого вы должны использовать openssl_encrypt. Привет!

Ответ 2

Рассмотрим использование defuse или RNCryptor, они обеспечивают полное решение, поддерживаются и правильны.

Ответ 3

Как упоминалось выше, open_ssl является хорошей альтернативой mcrypt. Единственная проблема, с которой я столкнулся с open_ssl, заключается в том, что она не может использоваться для больших строк.

Я написал script (статический класс), который преодолевает эту проблему (большие строки разбиваются на куски и зашифровываются/дешифруются отдельно в фоновом режиме).

См. общедоступность: https://gist.github.com/petermuller71/33616d55174d9725fc00a663d30194ba