Laravel:“mcrypt_decrypt():IV 参数必须与块大小一样长”

Posted

技术标签:

【中文标题】Laravel:“mcrypt_decrypt():IV 参数必须与块大小一样长”【英文标题】:Laravel : "mcrypt_decrypt(): The IV parameter must be as long as the blocksize" 【发布时间】:2014-07-18 07:41:15 【问题描述】:

我在 Laravel 应用程序上运行了 composer update,现在我收到了这个错误:

mcrypt_decrypt():IV参数必须和blocksize一样长

发生了什么?!

【问题讨论】:

酷 [Ed Rands 的评论][1] 为我工作只是为了清理 cookie [1]:***.com/a/23922994/1539590 【参考方案1】:

刚刚详细说明了 Ifan Iqbal 的答案。正如他所说,当使用相同的加密密钥运行多个 Laravel 安装时会发生这种情况。无需清除 cookie,只需为您运行的每个 Laravel 安装创建一个唯一的密钥(顺便说一下,这是一种很好的做法)。

转到您的终端并输入:

php artisan key:generate

这将自动在 app/config/app.php 中设置加密密钥,您的错误将消失。

【讨论】:

【参考方案2】:

当您使用相同的加密密钥运行多个 Laravel 项目/应用程序时,也会发生此问题。只需将app/config/app.php 中的key 值更改为不同的值,即可开始使用。

【讨论】:

这应该是 imo 公认的答案,因为它从正确的角度解决了问题 - 消除了双 Laravel 键 - 而不是绕过它。【参考方案3】:

您需要在 app\config\app.php 更改密码。具有相同的密码名称对我造成了这个问题。我唯一地更改了密码名称,然后它工作正常。

【讨论】:

【参考方案4】:

我想通了。您所要做的就是清除您的 cookie,一切都会好起来的!

【讨论】:

你只需要清除cookies,不需要清除历史记录。 我遇到了同样的问题...当在同一个浏览器中打开多个 laravel 会话时会发生这种情况(它发生在 firefox 上)。我删除了 pma_*laravel_session cookie,一切恢复正常

以上是关于Laravel:“mcrypt_decrypt():IV 参数必须与块大小一样长”的主要内容,如果未能解决你的问题,请参考以下文章

带有三重和 cbc 的 mcrypt_decrypt 无法正常工作

NodeJS 中的 PHP mcrypt_decrypt

调用未定义的函数 mcrypt_decrypt() - 即使安装了 php5-mcrypt

php使用内置的mcrypt_encrypt和mcrypt_decrypt进行字符串加密解密

php一些基本函数

6种php加密解密方法