The MAC is invalid
在使用laravel框架进行网站开发时,我们会使用laravel的crypt类对用户的密码进行加密来达到信息加密的目的,crypt类会对数据加密时会依赖app_key,所以当更换了app_key时,再在登陆校验时使用crypt::decrypt()函数时,会报the mac is invalid.的错误。
所以解决的办法就是通过原来的app_key解密获取到用户最原始的数据,然后把用户数据按照新的app_key重新加密存入数据库。
手册说明如下:
设置:
在使用 laravel 的加密功能前,你需要先为 config/app.php配置文件中的 app_key参数设置一个值,这个值是一个包含 32 个随机字符的字符串。如果这个值没有正确设置,所有由 laravel 加密的数据都是不安全的。
基本用法:
通过 crypt facade 可以加密一段数据。所有加密采用的都是 openssl 和 aes-256-cbc cipher。并且,所有加密过的数据都会被赋予一个“信息验证码”(mac),以防被加密后所得到的字符串被篡改。
由此说明encrypt生成的值和app_key有关,并且加密数据后会赋予一个mac用在解密时的安全验证,由于项目更换环境后需要重新生成app_key,所以之前生成的数据在新的环境无法解密。
以上报错说mac值无效并不是计算机mac地址,而是laravel的encrypt加密与其app_key有关,并且为每一个数据赋予了一个特殊的mac验证码。
更换环境后需要先重新生成app_key,然后数据库中使用encrypt加密数据需要重新加密。
下一篇: Java中的匿名内部类及内部类的二三事
推荐阅读
-
如何在Mac下配置多个Java版本
-
mac数据库工具推荐(macbook型号对照表)
-
Mac下安装mysql5.7 完整步骤(图文详解)
-
苹果Mac电脑和Windows电脑有何区别、怎么选?
-
mac电脑安装jdk及环境变量配置(mac系统java安装教程)
-
Apple Watch怎么连接Mac电脑播放音乐?
-
mac下pycharm设置python版本的图文教程
-
mac 安装python网络请求包requests方法
-
Mac python matplotlib Glyph xxxxx missing from current font的解决方案
-
Mac启动磁盘满了怎么办 Mac启动磁盘清理五种技巧