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 01 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
May 05 PHP
php的array数组和使用实例简明教程(容易理解)
Mar 20 PHP
php求两个目录的相对路径示例(php获取相对路径)
Mar 27 PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
Oct 22 PHP
php截取指定2个字符之间字符串的方法
Apr 15 PHP
php将图片文件转换成二进制输出的方法
Jun 10 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
Dec 17 PHP
CI框架整合smarty步骤详解
May 19 PHP
php实现二叉树中和为某一值的路径方法
Oct 14 PHP
PHP PDOStatement::execute讲解
Jan 31 PHP
PHP实现笛卡尔积算法的实例讲解
Dec 22 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集成动态口令认证
2016/07/21 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
javascript 客户端验证上传图片的大小(兼容IE和火狐)
2009/08/15 Javascript
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
jquery选择器(常用选择器说明)
2010/09/28 Javascript
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
2011/06/02 Javascript
intro.js 页面引导简单用法 分享
2013/08/06 Javascript
3种不同方式的焦点图轮播特效分享
2013/10/30 Javascript
解决js中window.open弹出的是上次的缓存页面问题
2013/12/29 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
用JavaScript实现让浏览器停止载入页面的方法
2017/01/19 Javascript
javascript基础知识之html5轮播图实例讲解(44)
2017/02/17 Javascript
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
2017/08/18 jQuery
ant-design-vue 实现表格内部字段验证功能
2019/12/16 Javascript
ES6 Iterator遍历器原理,应用场景及相关常用知识拓展详解
2020/02/15 Javascript
[01:04:01]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第一场
2014/05/24 DOTA
[40:12]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
python实现上传下载文件功能
2020/11/19 Python
利用python画出折线图
2018/07/26 Python
解决Atom安装Hydrogen无法运行python3的问题
2019/08/28 Python
Python序列对象与String类型内置方法详解
2019/10/22 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
2020/03/30 Python
SmartBuyGlasses德国:购买太阳镜和眼镜
2019/08/20 全球购物
长曲棍球装备:Lacrosse Monkey
2020/12/02 全球购物
.TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute? ifconfig? netstat?)
2016/05/09 面试题
extern是什么意思
2016/03/10 面试题
酒店前台接待岗位职责
2013/12/03 职场文书
国家励志奖学金获奖感言
2014/01/09 职场文书
采购人员的个人自我评价
2014/01/16 职场文书
研究生就业推荐表导师评语
2014/12/31 职场文书
施工员岗位职责
2015/02/10 职场文书
python中pandas.read_csv()函数的深入讲解
2021/03/29 Python
Python 用户输入和while循环的操作
2021/05/23 Python
浅谈Redis 中的过期删除策略和内存淘汰机制
2022/04/03 Redis
CSS的calc函数用法小结
2022/06/25 HTML / CSS