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 相关文章推荐
教你IIS6的PHP最佳配置方法
Sep 05 PHP
Phpbean路由转发的php代码
Jan 10 PHP
php md5下16位和32位的实现代码
Apr 09 PHP
PHP IN_ARRAY 函数使用注意事项
Jul 24 PHP
php自动给文章加关键词链接的函数代码
Nov 29 PHP
PHP使用正则表达式清除超链接文本
Nov 12 PHP
php遍历目录输出目录及其下的所有文件示例
Jan 27 PHP
PHP+jQuery 注册模块开发详解
Oct 14 PHP
PHP获取服务器端信息的方法
Nov 28 PHP
php使用APC实现实时上传进度条功能
Oct 26 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
May 29 PHP
laravel 框架执行流程与原理简单分析
Feb 01 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地址
2008/12/20 PHP
PHP易混淆函数的区别及用法汇总
2014/11/22 PHP
PDO防注入原理分析以及注意事项
2015/02/25 PHP
PHP定时执行任务的3种方法详解
2015/12/21 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
2016/03/18 PHP
php仿微信红包分配算法的实现方法
2016/05/13 PHP
PHP封装的MSSql操作类完整实例
2016/05/26 PHP
php文件上传类的分享
2017/07/06 PHP
php插入mysql数据返回id的方法
2018/05/31 PHP
jquery animate图片模向滑动示例代码
2011/01/26 Javascript
让人期待的2011年度最佳 jQuery 插件分享
2012/03/16 Javascript
jquery 无限级联菜单案例分享
2013/03/26 Javascript
js页面跳转的问题(跳转到父页面、最外层页面、本页面)
2013/08/14 Javascript
node.js中的fs.existsSync方法使用说明
2014/12/17 Javascript
基于jQuery.Hz2Py.js插件实现的汉字转拼音特效
2015/05/07 Javascript
微信小程序 网络请求(post请求,get请求)
2017/01/17 Javascript
JavaScript中匿名函数的递归调用
2017/01/22 Javascript
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
javascript定时器取消定时器及优化方法
2017/07/08 Javascript
关于js中的鼠标事件总结
2017/07/11 Javascript
vue项目实现github在线预览功能
2018/06/20 Javascript
微信小程序自定义轮播图
2018/11/04 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
js实现踩五彩块游戏
2020/02/08 Javascript
Vue中实现回车键切换焦点的方法
2020/02/19 Javascript
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
使用python生成目录树
2018/03/29 Python
python 对给定可迭代集合统计出现频率,并排序的方法
2018/10/18 Python
Python之指数与E记法的区别详解
2019/11/21 Python
关于初始种子自动选取的区域生长实例(python+opencv)
2020/01/16 Python
Python 如何实现数据库表结构同步
2020/09/29 Python
css3实现文字扫光渐变动画效果的示例
2017/11/07 HTML / CSS
综合实践活动报告
2015/02/05 职场文书
领导干部学习三严三实心得体会
2016/01/05 职场文书
2022年四月新番
2022/03/15 日漫
MySQL自定义函数及触发器
2022/08/05 MySQL