Подтвердить что ты не робот

PHP7.1 и Laravel 5.3: Функция mcrypt_get_iv_size() устарела

Я использую Laravel 5.0 для всех моих проектов. Вчера я обновил свою версию PHP с 7.0.x до версии 7.1.0. После обновления я попытался открыть проект Laravel и увидел следующее сообщение:

ErrorException in Encrypter.php line 303: 
Function mcrypt_get_iv_size() is deprecated

in Encrypter.php line 303
at HandleExceptions->handleError('8192', 'Function mcrypt_get_iv_size() is deprecated', 'C:\wamp64\www\project1\vendor\laravel\framework\src\Illuminate\Encryption\Encrypter.php', '303', array()) in Encrypter.php line 303

Могу ли я узнать, как я могу это решить? Использует ли Laravel 5.3 решение проблемы? Мне не нравится обновлять свой Laravel до 5.3, потому что это огромный проект, и для обновления потребуется много времени. Слишком много различий между этими двумя версиями. Необходимо изменить количество кодов.

Есть ли более простой способ решить эту проблему?

4b9b3361

Ответ 1

Эта ошибка возникает из-за того, что у вас, вероятно, есть что-то отличное от AES-256-CBC как ваш шифр в вашем файле config/app.php, который зависит от расширения mcrypt. Возможно, вы используете MCRYPT_RIJNDAEL_256 или MCRYPT_RIJNDAEL_128?

Лучшее, что вы можете сделать без полномасштабного обновления Laravel, - установить устаревший шифр и использовать его для обновления всех ваших зашифрованных данных до используйте шифр AES-256-CBC, который по умолчанию считается шифром по умолчанию с Laravel 5.1. После этого вы сможете использовать PHP 7.1 для своего приложения Laravel.

Ответ 2

В конфигурационном файле config/app.php вы должны обновить шифр до "AES-256-CBC" и установить свой ключ в случайную 32-байтную строку, которая может быть надежно сгенерирована с помощью php artisan key:generate

Ответ 3

Добавьте это в начало config/app.php:

error_reporting(E_ALL ^ E_DEPRECATED);

Источник: fooobar.com/questions/314410/...

Ответ 4

чтобы решить это, просто измените шифр в app.php с 'MCRYPT_RIJNDAEL_128' на 'AES-256-CBC'

Ответ 5

в config/app.php попробуйте изменить MCRYPT_RIJNDAEL_128 на 'AES-256-CBC'