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 相关文章推荐
论坛头像随机变换代码
Oct 09 PHP
php上的memcache和memcached两个pecl库
Mar 29 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
Mar 13 PHP
浅谈Eclipse PDT调试PHP程序
Jun 09 PHP
php中base64_decode与base64_encode加密解密函数实例
Nov 24 PHP
php中file_exists函数使用详解
May 08 PHP
Yii2前后台分离及migrate使用(七)
May 04 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
May 23 PHP
laravel 5.4中实现无限级分类的方法示例
Jul 27 PHP
PHP后期静态绑定之self::限制实例分析
Dec 21 PHP
php的命名空间与自动加载实现方法
Aug 25 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
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
PHP实现的服务器一致性hash分布算法示例
2018/08/09 PHP
PDO::exec讲解
2019/01/28 PHP
JavaScript实现页面滚动图片加载(仿lazyload效果)
2011/07/22 Javascript
javascript语言结构小记(一)
2011/09/10 Javascript
原生js获取宽高与jquery获取宽高的方法关系对比
2014/04/04 Javascript
javascript使用数组的push方法完成快速排序
2014/09/15 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
2015/06/25 Javascript
jQuery实现文件上传进度条特效
2015/08/12 Javascript
jQuery使用$.ajax提交表单完整实例
2015/12/11 Javascript
深入探秘jquery瀑布流的实现
2016/01/30 Javascript
jQuery.ajax实现根据不同的Content-Type做出不同的响应
2016/11/03 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
2016/11/04 Javascript
JavaScrip关于创建常量的知识点
2017/12/07 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
2018/04/19 Javascript
浅谈Vue.js中如何实现自定义下拉菜单指令
2019/01/06 Javascript
详解js常用分割取字符串的方法
2019/05/15 Javascript
ES6学习笔记之let与const用法实例分析
2020/01/22 Javascript
JavaScript正则表达式验证登录实例
2020/03/18 Javascript
Vue页面跳转传递参数及接收方式
2020/09/09 Javascript
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
Python中的MongoDB基本操作:连接、查询实例
2015/02/13 Python
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
python调用系统ffmpeg实现视频截图、http发送
2018/03/06 Python
python如何派生内置不可变类型并修改实例化行为
2018/03/21 Python
在Pycharm terminal中字体大小设置的方法
2019/01/16 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
Keras - GPU ID 和显存占用设定步骤
2020/06/22 Python
面向对象概念面试题(.NET)
2016/11/04 面试题
退伍老兵事迹材料
2014/01/31 职场文书
新农村建设典型材料
2014/05/31 职场文书
乡镇干部先进性教育活动个人整改措施
2014/09/16 职场文书
2014迎国庆标语大全
2014/09/19 职场文书
离婚撤诉申请书范本
2015/05/18 职场文书
卡特教练观后感
2015/06/08 职场文书
十大最强奥特曼武器:怪兽战斗仪在榜,第五奥特之父只使用过一次
2022/03/18 日漫