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本地服务器分享
Feb 19 PHP
thinkphp实现面包屑导航(当前位置)例子分享
May 10 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
Oct 30 PHP
php几个预定义变量$_SERVER用法小结
Nov 07 PHP
PHP实现文件下载详解
Nov 27 PHP
php中数据库连接方式pdo和mysqli对比分析
Feb 25 PHP
PHP单例模式详细介绍
Jul 01 PHP
PHP实现163邮箱自动发送邮件
Mar 29 PHP
php array_map使用自定义的函数处理数组中的每个值
Oct 26 PHP
php 7新特性之类型申明详解
Jun 06 PHP
PHP的PDO连接讲解
Jan 24 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调用三种数据库的方法(1)
2006/10/09 PHP
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
2013/06/05 PHP
PHP图片自动裁切应付不同尺寸的显示
2014/10/16 PHP
深入理解PHP中的Streams工具
2015/07/03 PHP
php 输出缓冲 Output Control用法实例详解
2020/03/03 PHP
jquery选择器大全 全面详解jquery选择器
2014/03/06 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
2016/03/05 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
炫酷的js手风琴效果
2016/10/13 Javascript
jQuery Validate验证框架详解(推荐)
2016/12/17 Javascript
jQuery Ajax 实现在html页面实时显示用户登录状态
2016/12/30 Javascript
JavaScript实现动态增删表格的方法
2017/03/09 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
2017/04/19 Javascript
vue使用laydate时间插件的方法
2018/11/14 Javascript
JavaScript学习笔记之DOM基础操作实例小结
2019/01/09 Javascript
JQuery的加载和选择器用法简单示例
2019/05/13 jQuery
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
2019/05/16 Javascript
使用RxJS更优雅地进行定时请求详析
2019/06/02 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
Python基于PycURL实现POST的方法
2015/07/25 Python
python读取oracle函数返回值
2016/07/18 Python
11月编程语言排行榜 Python逆袭C#上升到第4
2017/11/15 Python
python生成圆形图片的方法
2020/03/25 Python
Python对CSV、Excel、txt、dat文件的处理
2018/09/18 Python
Matlab中plot基本用法的具体使用
2020/07/17 Python
日本网路线上商品代购服务:转送JAPAN
2016/08/05 全球购物
澳大利亚连衣裙和女装在线:Esther
2017/11/11 全球购物
师范院校学生自荐信范文
2013/12/27 职场文书
2014年计算机专业个人自我评价
2014/01/19 职场文书
红色故事演讲稿
2014/05/22 职场文书
大学生就业协议书范本(适用于公司企业)
2014/10/07 职场文书
领导干部个人整改措施落实情况汇报
2014/10/29 职场文书
酒桌上的开场白
2015/06/01 职场文书
2015年社区党建工作汇报材料
2015/06/25 职场文书
农村房屋租赁合同(范本)
2019/07/23 职场文书
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
2022/04/12 PostgreSQL