学渣也要搞 laravel(4)—— 服务 加解密篇
使用 Crypt::encrypt() 对数据进行加密,[注意要引入 use Illuminate\Support\Facades\Crypt;; ]
简单的做个测试:
先分配一个路由:
Route::get('test','LoginController@crypt');
例子:
public function crypt(){
$pswd = '123456';
$pswd_lock = Crypt::encrypt($pswd);//加密$pswd
echo $pswd_lock.'<br/>';
$pswd_open = Crypt::decrypt($pswd_lock);
echo $pswd_open;
}
输出: eyJpdiI6InlaYVJjVjVDME1YaVdRdTBIczd ... 一堆加密后的字符串
123456
这就是简单的用法例子,然后下面讲的就是之前做的后台一个登陆后的密码解密过程出现的 The Mac Is Invalid 错误 。
一开始看到这个错误的时候一脸蒙蔽。以为是代码哪有问题。然后一直断点调试发现到用户登陆时数据库里面之前加密的用户密码一堆字符串还能获取到的。但是使用Crypt::decrypt()去解密的时候就提示 The Mac Is Invalid 然后很郁闷重写了个上面的方法测试了一下发现没有问题啊。然后我在试着解密数据库里面的 那堆字符串就提示报错。然后百度了下 在看看 laravel手册 看到 :
在使用Laravel的加密器之前,应该在配置文件config/app.php中设置key选项为32位随机字符串。如果这个值没有被设置,所有Laravel加密过的值都是不安全的所有加密值都使用OpenSSL和AES-256-CBC密码进行加密。此外,所有加密值都通过一个消息认证码(MAC)来检测对加密字符串的任何修改。
然后就想了想前几天写之前那个博文的时候做个下测试更换APP_KEY的artisan命令。之后就再次问了下大牛们、"果然就是这APP_KEY捣的鬼 ..."。 于是自己把从新加密后的 那堆字符串给放到数据库里面 再次登陆然后就解决了、 那么问题来了。假设项目APP_KEY被盗取,再次更换APP_KEY那数据库里面数据用户信息岂不是要重新写入?没错就是要重新弄。数据库里面的数据都作废掉了。但是APP_KEY基本上不会泄露。所以不要轻易更换APP_KEY。
学渣也要搞 laravel(4)—— 服务 加解密篇的更多相关文章
- 学渣也要搞 laravel(1)—— 安装篇
看到laravel(我叫它:拉瓦)那么热门,我也决定学上一学. Laravel 5.2 在 5.1 基础上继续改进和优化,添加了许多新的功能特性:多认证驱动支持.隐式模型绑定.简化Eloquent 全 ...
- 学渣也要搞 laravel(2)—— HTTP路由[1]篇
前几天忙了,然后快两个星期没有发博客.今天正式回归.哈哈 1. 路由 说到路由当时学的时候给我疑惑了几天..没有仔细看文档.然后一脸蒙蔽的去用 postman[谷歌插件] 测试路由方法.然后就很奇怪 ...
- 学渣也要搞 laravel(3)—— HTTP控制器
1. laravel 控制器在app/Http/Controllers/ 下,你会看到里面有一个Controller.php ,之后我们创建的控制器都是继承这个总控制器的.创建控制器只需要在这里面添加 ...
- react+laravel与服务端渲染的几点思考
一.前后端完全分离 1.用React.js做MVC中的V,剩下的交给Laravel 2.Laravel用来做API接口开发. 3.好处:实现了前后端开发的分离,从而加快前后端开发效率.另外若是多端的如 ...
- Android 三级联动选择城市+后台服务加载数据库
技术渣,大家将就着看 首先我们需要一个xml数据保存到数据库,这里我从QQ下面找到一个loclist.xml文件 <CountryRegion Name="中国" Code= ...
- ArcGIS API for Silverlight 调用GP服务加载等值线图层
原文:ArcGIS API for Silverlight 调用GP服务加载等值线图层 第二篇.Silverlight客户端调用GP服务 利用ArcGIS API for Silverlight实现G ...
- 怎么使用 Laravel 的服务容器来优化读写数据库中的 options关键词
其中我们可以最方便地利用的一个特性就是 Laravel 的服务容器了.在这里我不多赘述 Service Container 是个啥,想了解的可以自行搜索.不想了解的就只要大致知道它是个可以 绑定/取出 ...
- 为什么说要搞定微服务架构,先搞定RPC框架?
今天开始聊一些微服务的实践,第一块,RPC框架的原理及实践,为什么说要搞定微服务架构,先搞定RPC框架呢? 一.需求缘起 服务化的一个好处就是,不限定服务的提供方使用什么技术选型,能够实现大公司跨团队 ...
- spring cloud: zuul(四): 正则表达式匹配其他微服务(给其他微服务加版本号)
spring cloud: zuul(四): 正则表达式匹配其他微服务(给其他微服务加版本号) 比如我原来有,spring-boot-user微服务,后台进行迭代更新,另外其了一个微服务: sprin ...
随机推荐
- Yii框架中ActiveRecord使用Relations
参考文章: http://blog.csdn.net/yjj1s/article/details/6885276 http://www.gowhich.com/blog/38 http://www.c ...
- Nginx+tomcat负载均衡并动静态分离
Nginx使用正则表达式配置location,指定某些后缀的文件直接从文件路径中找(如*.jpg直接去C:/XX/XX/XX/img下找),其他的请求转发给tomcat 同时可以配置多个tomcat ...
- 【python自动化第四篇:python入门进阶】
今天的课程总结: 装饰器 迭代器&生成器 json&pickle实现数据的序列化 软件目录结构规范 一.装饰器 装饰器的本质是函数,起目的就是用来为其它函数增加附加功能 原则:不能修改 ...
- Javascript substr方法在某些浏览器下行为出现BUG的补丁代码
主要思路是使用兼容性和稳定性都保持一致的substring方法重写/覆盖substr /** * String.substr() bug fix * @param start * @param len ...
- Jmeter聚合报告分析
Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值 Average:平均响应时间--默认情况下是单个 Re ...
- centos7 搭建 docker 环境
1. 安装centos7 http://isoredirect.centos.org/centos/7/isos/x86_64/ 下载 everything 版本,最小化版本可能缺失很多东西 我是在 ...
- BSEG和BSIS、BSAS、BSID、BSAD、BSIK、BSAK六个表的关系(转)
BSEG和BSIS.BSAS.BSID.BSAD.BSIK.BSAK 六个表的关系 1.数据关系: BSAS+BSIS+BSAK+BSIK+BSAD+BSID = BSEG 2.六个表说明: clea ...
- SharePoint 2013 error The given assembly name or codebase System.ServiceModel.dll was invalid
笔者近期在 SharePoint 2013 的环境中遇到一个奇怪的问题,前一天 SharePoint 2013 站点还是好好的.可是突然站点就报page can't display 500 错误: T ...
- careercup-链表 2.3
2.3 实现一个算法,删除单向链表中间的某个结点,假设你只能访问该结点.(即你不知道头结点) 这个问题的关键是你只有一个指向要删除结点的指针,如果直接删除它,这条链表就断了. 但你又没办法得到该结点之 ...
- 转:Myeclipse连接MySQL数据库经验分享
要使除 JDBC ODBC Bridge 之外的 Driver 生效,需要手动配置. 首先获得 MySQL Connector / J 的 jar : http://dev.mysql.com/dow ...