mcrypt_decrypt():此算法不支持大小为15的键。仅支持大小为16、24或32的密钥
如何解决此问题?我的密钥已设置-无法更改它。这必须是一个本地更改,我认为我的本地PHP版本对于我加载的项目来说太高级了。我该如何解决这个问题呢?
发布于 2014-12-03 00:44:33
你更新到5.6了吗?上面写着
不再接受
无效密钥和iv大小。如果输入无效,mcrypt_decrypt()现在将抛出警告并返回FALSE。以前,密钥和IV是用'\0‘字节填充到下一个有效大小的。
阅读这句话的最后一行,您将在那里找到解决方案:)
mcrypt_decrypt():此算法不支持大小为15的键。仅支持大小为16、24或32的密钥
这意味着你需要用\0
来填充你的钥匙(这就是以前的版本为你做的)
$key=$key."\0";
发布于 2015-11-25 03:31:32
我继续创建了一个基于Hanky 웃 Panky's answer的函数。
这可以与任何密钥长度一起使用,以确保其大小正确。
function pad_key($key){
// key is too large
if(strlen($key) > 32) return false;
// set sizes
$sizes = array(16,24,32);
// loop through sizes and pad key
foreach($sizes as $s){
while(strlen($key) < $s) $key = $key."\0";
if(strlen($key) == $s) break; // finish if the key matches a size
}
// return
return $key;
}
发布于 2016-11-10 03:03:38
对于Laravel 5
只需运行php artisan key:generate
Application key [EaaJgaD0uFDEg7tpvMOqKfAQ46Bqi8Va] set successfully.
如果没有看到密钥更新,只需将其粘贴到.env
文件中即可。
APP_KEY=EaaJgaD0uFDEg7tpvMOqKfAQ46Bqi8Va
刷新页面
https://stackoverflow.com/questions/27254432
复制相似问题