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 相关文章推荐
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
Apr 23 PHP
PHP 计算代码执行耗时的代码修正网上普遍错误
May 14 PHP
基于PHP CURL获取邮箱地址的详解
Jun 03 PHP
深入掌握include_once与require_once的区别
Jun 17 PHP
Yii PHP Framework实用入门教程(详细介绍)
Jun 18 PHP
10个简化PHP开发的工具
Dec 25 PHP
PHP读取配置文件类实例(可读取ini,yaml,xml等)
Jul 28 PHP
PHP可变函数学习小结
Nov 29 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
Oct 08 PHP
PHP的中使用非缓冲模式查询数据库的方法
Feb 05 PHP
PHP使用PDO抽象层获取查询结果的方法示例
May 10 PHP
Thinkphp 框架扩展之应用模式实现方法分析
Apr 27 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作为Shell脚本语言使用
2006/10/09 PHP
PHP执行zip与rar解压缩方法实现代码
2010/12/05 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
2014/07/25 PHP
php动态添加url查询参数的方法
2015/04/14 PHP
实现PHP搜索加分页
2016/10/12 PHP
PHP自动识别当前使用移动终端
2018/05/21 PHP
PHP实现 APP端微信支付功能
2018/06/22 PHP
javascript编程起步(第六课)
2007/02/27 Javascript
基于jquery点击自以外任意处,关闭自身的代码
2012/02/10 Javascript
jquery表单验证框架提供的身份证验证方法(示例代码)
2013/12/27 Javascript
JQuery的Ajax请求实现局部刷新的简单实例
2014/02/11 Javascript
js获取鼠标点击的位置实现思路及代码
2014/05/09 Javascript
jquery彩色投票进度条简单实例演示
2020/07/23 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
2016/03/09 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
2016/07/12 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
利用express启动一个server服务的方法
2017/09/17 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
2017/10/20 jQuery
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
react 父子组件之间通讯props
2018/09/08 Javascript
JS实现头条新闻的经典轮播图效果示例
2019/01/30 Javascript
python开发之str.format()用法实例分析
2016/02/22 Python
python中map()与zip()操作方法
2016/02/27 Python
Python中Flask-RESTful编写API接口(小白入门)
2019/12/11 Python
Columbia美国官网:美国著名的户外服装品牌
2016/11/24 全球购物
班主任工作年限证明
2014/01/12 职场文书
网上蛋糕店创业计划书
2014/01/24 职场文书
社区学雷锋活动策划方案
2014/01/30 职场文书
行政专员岗位职责说明书
2014/07/30 职场文书
行风评议整改报告
2014/11/06 职场文书
新学期感想
2015/08/10 职场文书
演讲稿:态度决定一切
2019/04/02 职场文书
7个关于Python的经典基础案例
2021/11/07 Python
Golang bufio详细讲解
2022/04/21 Golang