关于php:Random RuntimeException:唯一受支持的密码是具有正确密钥长度的AES-128-CBC和AES-256-CBC

admin2023-09-0234078

Laravel 5.3(在Windows Server上)我也有同样的问题。我做了所有可能的尝试:检查了.env文件,配置,工匠生成的新密钥,缓存:清除,配置:清除,作曲家更新,但是问题仍然存在。

请注意,具有完全相同版本的apache,mysql,php的相同代码在Mac OS上不会产生此问题。

我发现密钥("加密承包商"的第一个参数)"有时"为空,当然会失败。在大多数情况下,密钥是正确的,但是密钥会从EncryptionServiceProvider随机传到空,然后EncryptionServiceProvider向其询问应用程序配置。

因此,对我而言唯一有效的解决方案是在EncryptionServiceProvider中添加if ($key),以便不会使用空键调用Encryption构造函数。

当然,这不是一个"干净"的解决方案,也不能解释问题,但至少可以避免找到充满错误的日志文件:

更多详细信息和回溯日志:

当然,如我所写,我检查了.env文件,配置,工匠新密钥生成,缓存:清除,配置:清除,作曲家更新。
这东西还可以,因为它可以在99%的时间内正常工作,但随机会出现错误。

  • 对此感兴趣。 如果有几次这个问题,并且"简单地"重新安装框架就可以解决此问题。 我真的很好奇为什么。

  • 您是否运行

    php artisan key:generate

  •  您是否尝试过

    php artisan config:cache

  • 解决问题了吗? 我有同样的问题。




清除配置缓存

Laravel允许你缓存应用程序的配置,以提高性能。以下是清除配置缓存的步骤:

php artisan config:cache

该命令将生成一个缓存配置文件,以提高应用程序的性能。如果你在更改应用程序的配置文件之后运行该命令,则必须使用下面命令清除缓存:

php artisan config:clear


网友评论