I’m using Laravel 5.0 for all my projects. Yesterday, I’ve updated my PHP version from 7.0.x to version 7.1.0. Once updated, I tried opening my Laravel project and saw this message below:
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:wamp64wwwproject1vendorlaravelframeworksrcIlluminateEncryptionEncrypter.php', '303', array()) in Encrypter.php line 303
May I know how can I solve this ? Does using Laravel 5.3 solve the problem? I don’t feel like updating my Laravel to 5.3 because it’s a huge project and it will takes a long time to update. There are too much differences between these two versions. Lots of codes need to be modified.
Is there an easier way to solve this issue?
This error occurs because you probably have something other than
AES-256-CBC as your cipher in your
config/app.php file that depends on the mcrypt extension. Perhaps you are using
The best thing you can do without a full-blown Laravel upgrade is install the legacy encrypter and use it to update all your encrypted data to use the AES-256-CBC cipher which has been the default cipher since Laravel 5.1, I believe. Once you do this, you should be able to use PHP 7.1 for your Laravel application.
config/app.php configuration file, you should update the cipher to
"AES-256-CBC" and set your key to a random 32 byte string which may be securely generated using
php artisan key:generate
Add this to the beginning of the
error_reporting(E_ALL ^ E_DEPRECATED);
to solve this just change cipher in app.php from ‘MCRYPT_RIJNDAEL_128’ to ‘AES-256-CBC’