Yii 实现数据加密和解密

在Yii中有很多数据不能够以明文进行存储和展示,例如密码和一些比较重要的文件信息,这时候需要对这些信息进行加密。

Posted in PHP onMarch 09, 2021

对密码进行加密和验证客户端传输的密码是否正确

对密码进行加密

$hash = Yii::$app->getSecurity()->generatePasswordHash($password);

对客户端传递的密码进行验证,判断是否正确

//$password:客户端传递的明文密码,$hash:对密码进行加密后的哈希值 
if (Yii::$app->getSecurity()->validatePassword($password, $hash)) { 
  // 验证成功(密码正确) 
} else { 
  // 验证失败(密码错误) 
}

 

生成一个伪随机数据

在进行密码重置的时候,经常会发送一份邮件到用户邮箱中,这时候可以使用Yii的伪随机数据方法给用户生成一个伪随机数据作为密码

//默认生成32为随机字符,可以指定位数生成指定位数的伪随机数 
$key = Yii::$app->getSecurity()->generateRandomString();

 

Yii常见的数据加密和解密

//$data:需要加密的信息,$secretKey:加密时使用的密钥(key) 
$encryptedData = Yii::$app->getSecurity()->encryptByPassword($data, $secretKey); 

//$encryptedData:需要解密的信息,$secretKey:加密时使用的密钥(key) 
$data = Yii::$app->getSecurity()->decryptByPassword($encryptedData, $secretKey); 

//$data:需要加密的信息,$secretKey:加密时使用的密钥(key) 
$encryptedData = Yii::$app->getSecurity()->encryptByKey($data, $secretKey); 

//$encryptedData:需要解密的信息,$secretKey:加密时使用的密钥(key) 
$data = Yii::$app->getSecurity()->decryptByKey($encryptedData, $secretKey);

 

PHP 相关文章推荐
用来给图片加水印的PHP类
Apr 09 PHP
PHP取整数函数常用的四种方法小结
Jul 05 PHP
基于php split()函数的用法详解
Jun 05 PHP
PHP基础知识介绍
Sep 17 PHP
php将session放入memcached的设置方法
Feb 14 PHP
php获取网页请求状态程序示例
Jun 17 PHP
PHP中exec函数和shell_exec函数的区别
Aug 20 PHP
Yii使用技巧大汇总
Dec 29 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 PHP
php+js实现的无刷新下载文件功能示例
Aug 23 PHP
laravel 模型查询按照whereIn排序的示例
Oct 16 PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
Aug 17 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
Mar 09 #PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
Mar 09 #PHP
宝塔面板在NGINX环境中TP5.1如何运行?
Mar 09 #PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
Mar 09 #PHP
Swoole扩展的6种模式深入详解
Mar 04 #PHP
php中Swoole的热更新实现代码实例
Mar 04 #PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
Mar 04 #PHP
You might like
PHP也可以?成Shell Script
2006/10/09 PHP
利用PHP实现与ASP Banner组件相似的类
2006/10/09 PHP
php+ajax实时刷新简单实例
2015/02/25 PHP
Yii框架视图、视图布局、视图数据块操作示例
2019/10/14 PHP
通过Unicode转义序列来加密,按你说的可以算是混淆吧
2007/05/06 Javascript
出现“不能执行已释放的Script代码”错误的原因及解决办法
2007/08/29 Javascript
js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码
2011/07/27 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
js querySelector和getElementById通过id获取元素的区别
2012/04/20 Javascript
javascript阻止浏览器后退事件防止误操作清空表单
2013/11/22 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
2014/10/20 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
2016/02/19 Javascript
利用Node.JS实现邮件发送功能
2016/10/21 Javascript
Vue.js双向绑定实现原理详解
2016/12/22 Javascript
自带气泡提示的vue校验插件(vue-verify-pop)
2017/04/07 Javascript
详解JS中的attribute属性
2017/04/25 Javascript
浅谈Node模块系统及其模式
2017/11/17 Javascript
总结js中的一些兼容性易错的问题
2017/12/18 Javascript
JQuery扩展对象方法操作示例
2018/08/21 jQuery
angular4自定义表单控件[(ngModel)]的实现
2018/11/23 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
2020/07/30 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
2020/12/05 Javascript
python网络爬虫之如何伪装逃过反爬虫程序的方法
2017/11/23 Python
详解用TensorFlow实现逻辑回归算法
2018/05/02 Python
对Python之gzip文件读写的方法详解
2019/02/08 Python
如何用Python做一个微信机器人自动拉群
2019/07/03 Python
Django后台管理系统的图文使用教学
2020/01/20 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
英国领先的酒类网上商城:TheDrinkShop
2017/03/16 全球购物
荷兰超市:DEEN
2018/03/14 全球购物
乐高官方旗舰店:LEGO积木玩具
2019/04/06 全球购物
.TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute? ifconfig? netstat?)
2016/05/09 面试题
.net C#面试题
2012/08/28 面试题
实习自我评价怎么写
2013/12/02 职场文书
教育合作协议范本
2014/10/17 职场文书
法制教育讲座心得体会
2016/01/14 职场文书