11.laravel项目报错DecryptException:The MAC is invalid.
来源:互联网 发布:淘宝无门槛优惠券名称 编辑:程序博客网 时间:2024/05/21 09:57
http://blog.csdn.net/darry_zhao/article/details/52791614
1.问题描述
把Laravel项目上传至服务器,本地数据库导出再导入至服务器数据库,一切运行正常,但是当进行用户登录时报错
DecryptException in compiled.php line 13238: The MAC is invalid
或
DecryptException in BaseEncrypter.php line 48: The MAC is invalid
2.解决过程
上网查询发现很多人说是laravel的key问题,要重新生成一下,清除缓存。但是试过发现错误由
DecryptException in compiled.php line 13238: The MAC is invalid
变成了
DecryptException in BaseEncrypter.php line 48: The MAC is invalid
问题还是没有解决
然后在技术群里询问,有人说把数据库里的数据在服务器端重新encrypt生成一遍导入数据库,可能是因为Laravel中的encrypt函数和计算机的mac地址进行了绑定,
重新清掉了服务器数据库里的用户表,然后用seeder重新填充数据,再次调试发现问题解决。
对比本地数据库中经过encrypt加密的用户密码和服务器数据库中的,发现同样的密码生成的加密数据却不一样,证明encrypt加密和环境有关,翻阅手册发现有对加密的介绍。
设置:
在使用 Laravel 的加密功能前,你需要先为 config/app.php 配置文件中的 key 参数设置一个值,这个值是一个包含 32 个随机字符的字符串。如果这个值没有正确设置,所有由 Laravel 加密的数据都是不安全的。
基本用法:
加密
通过 Crypt facade 可以加密一段数据。所有加密采用的都是 OpenSSL 和 AES-256-CBC cipher。并且,所有加密过的数据都会被赋予一个“信息验证码”(MAC),以防被加密后所得到的字符串被篡改。
由此说明encrypt生成的值和key有关,并且加密数据后会赋予一个mac用在解密时的安全验证,由于项目更换环境后需要重新生成key,所以之前生成的数据在新的环境无法解密,
3.总结
以上报错说MAC值无效并不是计算机mac地址,而是laravel的encrypt加密与其app_key有关,并且为每一个数据赋予了一个特殊的mac验证码。
更换环境后需要先重新生成key,然后数据库中使用encrypt加密数据需要重新加密。
由此说明一旦app_key修改的话,数据库中大量的encrypt加密数据将全部作废,这不利于数据库的迁移和备份,所以还是使用hash加密吧
阅读全文
0 0
- 11.laravel项目报错DecryptException:The MAC is invalid.
- 11.laravel项目报错DecryptException:The MAC is invalid.
- The MAC is invalid.
- Laravel--项目报错fileinfo is missing
- VS2013打开2015的项目报错 The specified task executable location ... csc.exe" is invalid.
- laravel新建应用报错:The Process class relies on proc_open, which is not
- Xcode上传App到Appstore,报错Error ITMS-90049:"This bundle is invalid.The bundle...."
- Xcode上传App到Appstore,报错Error ITMS-90049:"This bundle is invalid.The bundle...."
- Xcode上传App到Appstore,报错Error ITMS-90049:"This bundle is invalid.The bundle...."
- 编译报错void is an invalid type for the variable……错误解决
- 安装Windows补丁KB947821报错0x8007000d The data is invalid
- 报错System.BadImageFormatException: Format of the executable (.exe) or library (.dll) is invalid
- org.xml.sax.SAXParseException: Document is invalid: no grammar found.搭建Struts2项目报错
- The argument is invalid.
- sharepoint 2007 没有migrategroup参数,执行报错:Missing operation name or the operation name is invalid.
- githubz在add ssh key报错 Key is invalid. Ensure you've copied the file correctly 解决办法
- Xcode7上传App到Appstore,报错Error ITMS-90049:"This bundle is invalid. The bundle identifier contains dis.
- Xcode上传App到Appstore时,报错Error ITMS-90049:"This bundle is invalid.The bundle...."
- 搭建Eclipse下的C++编译环境
- 记录诡异的nginx请求500错误
- dubbo+maven 项目打包*(服务者)
- 数字图像处理-基本知识点(一)
- Mngodb数据库的简单使用
- 11.laravel项目报错DecryptException:The MAC is invalid.
- git版本控制管理系列-----第十一章 储藏和引用日志
- ESD 接触放电、空气放电
- git版本控制管理系列-----第十二章 远程版本库
- git版本控制管理系列-----第十三章 版本库管理
- Codeforces Round #453 (Div. 2)
- 特殊权限与链接文件
- git版本控制管理系列-----第十四章 补丁
- 课程设计 航班信息的查询与检索