在使用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加密数据需要重新加密。

The MAC is invalid的更多相关文章

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

    1.问题描述 把Laravel项目上传至服务器,本地数据库导出再导入至服务器数据库,一切运行正常,但是当进行用户登录时报错 DecryptException in compiled.php line ...

  2. Laravel 项目登录报错:The MAC is invalid.

    在 Laravel 项目完成部署到服务器.数据库导入成功后 后台登录报错: 原因是 Laravel 的 APP_KEY 和 encrypt() 函数加密的问题.(encrypt() 是 Laravel ...

  3. 【转】【Mac】invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library

    异常原因 我在昨天升级了 macOX Sierra,悲剧的是,今天我发现git命令无法执行,homebrew也无法使用,这种情景我在升级OS X El Capitan也遇到过一次,完整异常提示如下: ...

  4. laravel5 MAC is invalid

    如果本机的环境更换过,项目中用来加密Crypt组件中的参数会变更. 如果出现这个问题,得更换数据库中加密后的变量 stackoverflow上找到的解决方法都是 composer dump-autol ...

  5. 【转】java:多网卡环境下获取MAC地址

    http://blog.csdn.net/10km/article/details/78569962 JDK6以后 java.net.NetworkInterface提供了完整的方法用于获取网络设备信 ...

  6. Encryption

    Encryption Configuration Basic Usage Encrypting a value Decrypting a value Configuration Before usin ...

  7. 学渣也要搞 laravel(4)—— 服务 加解密篇

    使用 Crypt::encrypt() 对数据进行加密,[注意要引入 use Illuminate\Support\Facades\Crypt;; ] 简单的做个测试: 先分配一个路由: Route: ...

  8. 解决mac升级后,出现的 xcrun: error: invalid active developer path, missing xcrun 错误

    最近升级了mac系统,然后接着写代码就出问题了. 报错信息如下: xcrun: error: invalid active developer path (/Library/Developer/Com ...

  9. vue2.5.2版本 :MAC设置应用在127.0.0.1:80端口访问; 并将127.0.0.1指向www.yours.com ;问题“ Invalid Host header”

    0.设置自己的host文件,将127.0.0.1指向自己想要访问的域名 127.0.0.1 www.yours.com 1.MAC设置应用在127.0.0.1:80端口访问: config/index ...

随机推荐

  1. C#对接JAVA系统遇到的AES加密坑

    起因对接合作伙伴的系统,需要对数据进行AES加密 默认的使用了已经写好的帮助类中加密算法,发现结果不对,各种尝试改变加密模式改变向量等等折腾快一下午.最后网上查了下AES在JAVA里面的实现完整代码如 ...

  2. MySQL中Checkpoint技术

    个人读书笔记,详情参考<MySQL技术内幕 Innodb存储引擎> 1,checkpoint产生的背景数据库在发生增删查改操作的时候,都是先在buffer pool中完成的,为了提高事物操 ...

  3. html迪士尼网页实现代码

    html body>     <div>         <!-- 导航设置 -->         <header>             <nav ...

  4. SVN中英文菜单对照

    TortoiseSVN英文版菜单中文翻译01.SVN Checkout(SVN取出) 点击SVN Checkout,弹出检出提示框,在URL of repository输入框中输入服务器仓库地址,在C ...

  5. EOS 权限

    [EOS权限] 1.查看权限 cleos get account $(Account_Name) 2.使用 cleos set account permission 命令来修改权限 可以看到,owne ...

  6. Java学习笔记(二十一):类型转换和instanceof关键字

    基本数据类型转换: 自动类型转换:把大类型的数据赋值给大类型的变量(此时的大小指的是容量的范围) byte b = 12; //byte是一个字节 int i = b; //int是四个字节 强制类型 ...

  7. Pandas合并数据集之concat、combine_first方法

    轴向连接(concat) Numpy import numpy as np import pandas as pd from pandas import Series arr = np.arange( ...

  8. oracle数据库分组之后取最大或者最小值

    原始数据 --使用子查询 SELECT * FROM student s WHERE s.birthday IN (SELECT MIN(s2.birthday) FROM student s2 GR ...

  9. C++继承中关于子类构造函数的写法

    构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法).因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需 ...

  10. etcd-v2第三集

    简单说下golang的etcd接口例子.etcd api有v2(http+json)和v3(grpc)两个版本,目前大家都用v2,所以... v2: https://github.com/coreos ...