不经过悉心栽培,花儿开不出鲜艳的花朵;不经过时间的历练,幼苗长不成参天大树。

[laravel]laravel项目报错DecryptException:The MAC is invalid.

php 建伟 4091℃ 0评论

原因:

其实产生这个错误的原因是laravel的key值问题。因为Laravel中的encrypt函数和key值进行了绑定,

说明:
在使用 Laravel 的加密功能前,你需要先为 config/app.php 配置文件中的 key 参数设置一个值,这个值是一个包含 32 个随机字符的字符串。如果这个值没有正确设置,所有由 Laravel 加密的数据都是不安全的。

加密
通过 Crypt facade 可以加密一段数据。所有加密采用的都是 OpenSSL 和 AES-256-CBC cipher。并且,所有加密过的数据都会被赋予一个“信息验证码”(MAC),以防被加密后所得到的字符串被篡改。

由此说明encrypt生成的值和key有关,并且加密数据后会赋予一个mac用在解密时的安全验证,由于项目更换环境后需要重新生成key,所以之前生成的数据在新的环境无法解密,

总结:

更换环境后需要先重新生成key,然后数据库中使用encrypt加密数据需要重新加密。

或者你上线项目之前记录之前的key值即可。

转载请注明:Li Jianwei's Blog » [laravel]laravel项目报错DecryptException:The MAC is invalid.

喜欢 (3)or分享 (0)
web技术交流群
22765697