• 技术文章 >php框架 >Laravel

    怎样解决laravel报错The MAC is invalid

    little bottlelittle bottle2019-04-24 10:46:08转载2735

    本篇文章主要讲述了laravel报错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加密数据需要重新加密。

    相关教程:PHP视频教程

    以上就是怎样解决laravel报错The MAC is invalid的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:博客园,如有侵犯,请联系admin@php.cn删除
    专题推荐:laravel 报错
    上一篇:怎样解决laravel默认将空值转为null 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • laravel搭建一个付费网站之项目创建• 如何将Laravel项目搬迁到服务器上• Laravel怎样实现google-authenticator--Google二维码验证器• 怎样解决laravel默认将空值转为null
    1/1

    PHP中文网