我的所有项目都使用 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,因为它是一个巨大的项目,并且需要很长时间才能更新。这两个版本差别太大了。很多代码需要修改。
有没有更简单的方法来解决这个问题?
原文由 nodeffect 发布,翻译遵循 CC BY-SA 4.0 许可协议
发生此错误是因为您的
config/app.php
文件中的密码可能不是AES-256-CBC
作为密码,这取决于 mcrypt 扩展。也许您正在使用MCRYPT_RIJNDAEL_256
或MCRYPT_RIJNDAEL_128
?如果没有全面升级 Laravel,你可以做的最好的事情是安装 旧版加密 器并使用它来更新所有加密数据以使用自 Laravel 5.1 以来一直是默认密码的 AES-256-CBC 密码,我相信。一旦你这样做了,你应该能够在你的 Laravel 应用程序中使用 PHP 7.1。