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 中的str_replace 函数总结
Apr 27 PHP
php递归列出所有文件和目录的代码
Sep 10 PHP
一周让你学会PHP 不错的学习资料
Feb 06 PHP
ThinkPHP采用模块和操作分析
Apr 18 PHP
php ci框架验证码实例分析
Jun 26 PHP
php实现每天自动变换随机问候语的方法
May 12 PHP
php将远程图片保存到本地服务器的实现代码
Aug 03 PHP
PHP之图片上传类实例代码(加了缩略图)
Jun 30 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
Sep 02 PHP
老生常谈PHP面向对象之命令模式(必看篇)
May 24 PHP
PHP检测一个数组有没有定义的方法步骤
Jul 20 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
Mar 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 url 加密解密函数代码
2011/08/26 PHP
php中explode的负数limit用法分析
2015/02/27 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
JavaScript—window对象使用示例
2013/12/09 Javascript
Web前端开发工具——bower依赖包管理工具
2016/03/29 Javascript
AngularJS 简单应用实例
2016/07/28 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
极力推荐10个短小实用的JavaScript代码段
2016/08/03 Javascript
javascript实现根据汉字获取简拼
2016/09/25 Javascript
javascript实现消灭星星小游戏简单版
2016/11/15 Javascript
Vue.js中数据绑定的语法教程
2017/06/02 Javascript
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
vue+webpack 打包文件 404 页面空白的解决方法
2018/02/28 Javascript
详解JSON Web Token 入门教程
2018/07/30 Javascript
javascript实现文本框标签验证的实例代码
2018/10/14 Javascript
Node.js 实现远程桌面监控的方法步骤
2019/07/02 Javascript
JavaScript实现拖拽和缩放效果
2020/08/24 Javascript
[56:18]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第二局
2016/03/05 DOTA
[49:42]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第一局
2016/03/04 DOTA
[33:19]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第一场 11.26
2020/11/30 DOTA
python Django批量导入数据
2016/03/25 Python
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
2016/06/14 Python
python获取指定时间差的时间实例详解
2017/04/11 Python
解决Pandas的DataFrame输出截断和省略的问题
2019/02/08 Python
Python将字符串常量转化为变量方法总结
2019/03/17 Python
python视频按帧截取图片工具
2019/07/23 Python
python 统计文件中的字符串数目示例
2019/12/24 Python
解决Python3.8运行tornado项目报NotImplementedError错误
2020/09/02 Python
英国简约舒适女装品牌:Great Plains
2018/07/27 全球购物
会计职业生涯规划范文
2014/01/04 职场文书
个人考核材料
2014/05/15 职场文书
物业保安岗位职责
2014/07/02 职场文书
教师自我剖析材料(群众路线)
2014/09/29 职场文书
KTV门卫岗位职责
2014/10/09 职场文书
环保宣传语大全
2015/07/13 职场文书
护士岗位竞聘书
2015/09/15 职场文书