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的无限分类实现想法~
Jan 02 PHP
NOD32 v2.70.32 简体中文封装版 提供下载了
Feb 27 PHP
php关于array_multisort多维数组排序的使用说明
Jan 04 PHP
解析PHP中数组元素升序、降序以及重新排序的函数
Jun 20 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十四)
Jun 26 PHP
一个简洁实用的PHP缓存类完整实例
Jul 26 PHP
php开发时容易忘记的一些技术细节
Feb 03 PHP
PHP使用curl模拟post上传及接收文件的方法
Mar 04 PHP
php+ajax+json 详解及实例代码
Dec 12 PHP
总结一些PHP中好用但又容易忽略的小知识
Jun 02 PHP
使用PHP+MySql实现微信投票功能实例代码
Sep 29 PHP
PHP模版引擎原理、定义与用法实例
Mar 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
php使用GeoIP库实例
2014/06/27 PHP
详解php中serialize()和unserialize()函数
2017/07/08 PHP
基于jquery的textarea发布框限制文字字数输入(添加中文识别)
2012/02/16 Javascript
javascript 常用功能总结
2012/03/18 Javascript
js获取页面传来参数的方法
2014/09/06 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
2016/03/11 Javascript
javascript 动态脚本添加的简单方法
2016/10/11 Javascript
jQuery实现简单弹窗遮罩效果
2017/02/27 Javascript
原生js实现瀑布流布局
2017/03/08 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
2017/04/14 Javascript
Node.JS利用PhantomJs抓取网页入门教程
2017/05/19 Javascript
JS实现可针对算术表达式求值的计算器功能示例
2018/09/04 Javascript
详解微信小程序之scroll-view的flex布局问题
2019/01/16 Javascript
Node.js一行代码实现静态文件服务器的方法步骤
2019/05/07 Javascript
Vue内部渲染视图的方法
2019/09/02 Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
2019/09/26 Javascript
javascript 对象 与 prototype 原型用法实例分析
2019/11/11 Javascript
利用js实现简易红绿灯
2020/10/15 Javascript
Python __setattr__、 __getattr__、 __delattr__、__call__用法示例
2015/03/06 Python
使用Python编写一个模仿CPU工作的程序
2015/04/16 Python
Python实现的数据结构与算法之基本搜索详解
2015/04/22 Python
python SMTP实现发送带附件电子邮件
2018/05/22 Python
python2.7实现复制大量文件及文件夹资料
2019/08/31 Python
Python中import导入不同目录的模块方法详解
2020/02/18 Python
使用Python第三方库pygame写个贪吃蛇小游戏
2020/03/06 Python
简单的Python人脸识别系统
2020/07/14 Python
如何使用Pytorch搭建模型
2020/10/26 Python
HTML5实现移动端点击翻牌功能
2020/10/23 HTML / CSS
Linux常见面试题
2013/03/18 面试题
岗位职责范本
2013/11/23 职场文书
网络程序员自荐信
2014/01/25 职场文书
幼儿园大班毕业感言
2014/02/06 职场文书
2014年清明节寄语
2014/04/03 职场文书
小学三八妇女节活动总结
2015/02/06 职场文书
2016年清明节期间群众祭祀活动工作总结
2016/04/01 职场文书
导游词之烟台威海蓬莱
2019/11/14 职场文书