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中使用Oracle数据库(5)
Oct 09 PHP
建立文件交换功能的脚本(一)
Oct 09 PHP
聊天室php&mysql(四)
Oct 09 PHP
PHP4实际应用经验篇(3)
Oct 09 PHP
PHP 遍历XP文件夹下所有文件
Nov 27 PHP
PHP 远程文件管理,可以给表格排序,遍历目录,时间排序
Aug 07 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
Aug 14 PHP
解析php中var_dump,var_export,print_r三个函数的区别
Jun 21 PHP
如何让CI框架支持service层
Oct 29 PHP
深入浅析PHP无限极分类的案例教程
May 09 PHP
php 使用redis锁限制并发访问类示例
Nov 02 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 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
[原创]用javascript实现检测指定目录是否存在的方法
2008/01/12 Javascript
手把手教你自己写一个js表单验证框架的方法
2010/09/14 Javascript
JavaScript动态调整TextArea高度的代码
2010/12/28 Javascript
动态的改变IFrame的高度实现IFrame自动伸展适应高度
2012/12/28 Javascript
js调用AJAX时Get和post的乱码解决方法
2013/06/04 Javascript
非常漂亮的JS+CSS图片幻灯切换特效
2013/11/20 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
2014/09/02 Javascript
javascript常用函数归纳整理
2014/10/31 Javascript
Javascript获取表单名称(name)的方法
2015/04/02 Javascript
AngularJS入门教程之与服务器(Ajax)交互操作示例【附完整demo源码下载】
2016/11/02 Javascript
jQuery Masonry瀑布流插件使用方法详解
2017/01/18 Javascript
重新理解JavaScript的六种继承方式
2017/03/24 Javascript
vue 打包后的文件部署到express服务器上的方法
2017/08/09 Javascript
js匿名函数使用&传参(实例)
2017/09/08 Javascript
vue中倒计时组件的实例代码
2018/07/06 Javascript
vue组件开发之用户无限添加自定义填写表单的方法
2018/08/28 Javascript
JavaScript编写开发动态时钟
2020/07/29 Javascript
[06:43]2018DOTA2国际邀请赛寻真——VGJ.Thunder
2018/08/11 DOTA
Python中文分词工具之结巴分词用法实例总结【经典案例】
2017/04/15 Python
python实现百万答题自动百度搜索答案
2018/01/16 Python
详解Python3中的迭代器和生成器及其区别
2018/10/09 Python
Python的argparse库使用详解
2018/10/09 Python
对python3标准库httpclient的使用详解
2018/12/18 Python
详解如何在Apache中运行Python WSGI应用
2019/01/02 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
2020/02/28 Python
python修改linux中文件(文件夹)的权限属性操作
2020/03/05 Python
python3中celery异步框架简单使用+守护进程方式启动
2021/01/20 Python
美国成衣女装品牌:CHICO’S
2016/09/19 全球购物
实习生个人找工作的自我评价
2013/10/30 职场文书
医院检讨书范文
2014/02/01 职场文书
普通简短的个人自我评价
2014/02/15 职场文书
租房协议书
2014/09/12 职场文书
观后感开头
2015/06/19 职场文书
Log4j.properties配置及其使用
2021/08/02 Java/Android
MySQL创建定时任务
2022/01/22 MySQL
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电