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

  使用 Crypt::encrypt() 对数据进行加密,[注意要引入 use Illuminate\Support\Facades\Crypt;; ]

  简单的做个测试:

    先分配一个路由:

1 Route::get(‘test‘,‘[email protected]‘);

    例子:

1     public function crypt(){
2         $pswd = ‘123456‘;
3         $pswd_lock = Crypt::encrypt($pswd);//加密$pswd
4         echo $pswd_lock.‘<br/>‘;
5         $pswd_open = Crypt::decrypt($pswd_lock);
6         echo $pswd_open;
7     }

    输出:   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。

时间: 2024-10-05 04:19:22

学渣也要搞 laravel(4)—— 服务 加解密篇的相关文章

学渣也要搞 laravel(1)—— 安装篇

看到laravel(我叫它:拉瓦)那么热门,我也决定学上一学. Laravel 5.2 在 5.1 基础上继续改进和优化,添加了许多新的功能特性:多认证驱动支持.隐式模型绑定.简化Eloquent 全局作用域.可选择的认证脚手架.中间件组.访问频率限制.数组输入验证优化等等.[其实这些我也不知道是什么,先了解了解和上个laravel5.1的比较,添加了那么多功能是不是学习的激情越来越强烈.] 如果想具体了解的话请点我. 1. 开始安装 开发环境满足以下要求: PHP版本 >= 5.5.9 PHP

学渣也要搞 laravel(2)—— HTTP路由[1]篇

前几天忙了,然后快两个星期没有发博客.今天正式回归.哈哈 1. 路由 说到路由当时学的时候给我疑惑了几天..没有仔细看文档.然后一脸蒙蔽的去用 postman[谷歌插件] 测试路由方法.然后就很奇怪 composer 下载下来的 laravel 为什么在 postman 里面测试的只有 get 路由方法能使用,类似这样 : laravel 的路由在app/Http/routes.php 这个文件(中文文档:点我) 在routes.php里面添加了一个get方法 1 Route::get('tes

学渣也要搞 laravel(3)—— HTTP控制器

1. laravel 控制器在app/Http/Controllers/ 下,你会看到里面有一个Controller.php ,之后我们创建的控制器都是继承这个总控制器的.创建控制器只需要在这里面添加一个文件 比如 IndexController.php 这个文件,在里面添加: 1 <?php 2 3 namespace App\Http\Controllers; 4 5 use Illuminate\Http\Request; 6 7 use App\Http\Requests; 8 9 cl

react+laravel与服务端渲染的思考

1.首先 controller 几乎不写代码是不可能的.我现在就是 react.js 和 laravel 一起用,前后端完全分离的. 用 react.js 搭建前端视图,然后用 ajax 或者 fetch 来和 laravel 通信.laravel 写的接口代码几乎都在 controller 里面. 2.不要 react.js 和 laravel 的 blade 混写,要么要么完全分离,要么就完全用 blade 不然项目大一点痛苦就来了. 3.更不要想用 laravel 来服务端渲染 react

Openstack学习笔记之——Neutron-server服务加载与启动源码分析(三)

本文是在学习Openstack的过程中整理和总结,由于时间和个人能力有限,错误之处在所难免,欢迎指正! 在Neutron-server服务加载与启动源码分析(二)中搞定模块功能的扩展和加载,我们就回到Neutron-server服务加载与启动源码分析(一)中的_run_wsgi函数 <span style="font-size:14px;">def _run_wsgi(app_name): app = config.load_paste_app(app_name) ifno

ArcGIS API for Silverlight 调用GP服务加载等值线图层

原文:ArcGIS API for Silverlight 调用GP服务加载等值线图层 第二篇.Silverlight客户端调用GP服务 利用ArcGIS API for Silverlight实现GP服务调用,这里的雨量数据是通过一个WebService获取而来,主要信息是雨量站点的经纬度坐标值和某个时间段内的降雨量值三个主要字段. 以下是核心代码部分: <UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/pr

如何让aspnet服务加载静态资源html(我的动态网页静态化) 转

我们知道,IIS自身是不能处理像ASPX扩展名这样的页面,只能直接请求像HTML这样的静态文件. 当客户端请求一个服务器资源时,这个HTTP请求会被inetinfo.exe进程截获(www服务),然后Check请求资源的类型,并依据资源映射信息(存储在IIS元库中,一种IIS专用的配置数据库)将请求的资源分配给特定的处理程序模块.1,如果是静态资源的请求,则分配由IIS处理(IIS在本地Web Server上访问请求的文件),将内容输出到控制台,发出请求的浏览器就能接收到它了.-----End2

Android 三级联动选择城市+后台服务加载数据库

技术渣,大家将就着看 首先我们需要一个xml数据保存到数据库,这里我从QQ下面找到一个loclist.xml文件 <CountryRegion Name="中国" Code="1"> <State Name="北京" Code="11"> <City Name="东城" Code="1" /> <City Name="西城"

openssl 加解密学习笔记

首先最近接到一个项目,这个项目中需要用到RSA的加密解密,因为之前没有接触过,在网上找了些资料,然后自己测试后发现其实使用openssl来进行加解密挺简单的,但是网上百度出来的很多又是一样的,有时候帮助不是很大,所以才想要写下来自己在搞整个加密过程遇到的一些问题,方便自己以后回头查看,也可能会帮到遇到同样的童鞋. 废话不多说,我接到的这个项目呢,有几个地方是需要用到RSA的加解密.1.使用.pfx格式的私钥签名.2.使用.cer的公钥文件进行加密操作.3.使用给定的指数与模进行公钥加密.下面有些