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中的cookie
Nov 26 PHP
使用php get_headers 判断URL是否有效的解决办法
Apr 27 PHP
PHP session文件独占锁引起阻塞问题解决方法
May 12 PHP
php生成Android客户端扫描可登录的二维码
May 13 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
May 20 PHP
php强制下载文件函数
Aug 24 PHP
PHP7 新特性详细介绍
Sep 06 PHP
ThinkPHP打水印及设置水印位置的方法
Oct 14 PHP
php格式文件打开的四种方法
Feb 24 PHP
PHP面向对象程序设计之多态性的应用示例
Dec 19 PHP
stripos函数知识点实例分享
Feb 11 PHP
php解析非标准json、非规范json的方式实例
May 10 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
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
那些年一起学习的PHP(二)
2012/03/21 PHP
PHP面向对象之旅:深入理解static变量与方法
2014/01/06 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
2016/04/11 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
2016/05/26 PHP
TextArea 控件的最大长度问题(js json)
2009/12/16 Javascript
js操作select控件的几种方法
2010/06/02 Javascript
Google (Local) Search API的简单使用介绍
2013/11/28 Javascript
JS中的数组的sort方法使用示例
2014/01/22 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
浅谈js 闭包引起的内存泄露问题
2015/06/22 Javascript
javascript遇到html5的一些表单属性
2015/07/05 Javascript
基于JavaScript FileReader上传图片显示本地链接
2016/05/27 Javascript
javascript将中国数字格式转换成欧式数字格式的简单实例
2016/08/02 Javascript
JS实现六位字符密码输入器功能
2016/08/19 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
js+html制作简单日历的方法
2017/06/27 Javascript
JavaScript监听手机物理返回键的两种解决方法
2017/08/14 Javascript
微信小程序实现留言功能
2018/10/31 Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
2019/05/30 Javascript
Vue实现微信支付功能遇到的坑
2019/06/05 Javascript
[02:53]DOTA2英雄昆卡基础教程
2013/11/25 DOTA
python通过pip更新所有已安装的包实现方法
2017/05/19 Python
基于Django用户认证系统详解
2018/02/21 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
2018/06/14 Python
python 随机生成10位数密码的实现代码
2019/06/27 Python
Django User 模块之 AbstractUser 扩展详解
2020/03/11 Python
德国箱包网上商店:koffer24.de
2016/07/27 全球购物
百思买美国官网:Best Buy
2016/07/28 全球购物
交通法规咨询中心工作职责
2013/11/27 职场文书
优秀演讲稿范文
2013/12/29 职场文书
金融专业大学生自我评价
2014/01/09 职场文书
爱国卫生月实施方案
2014/02/21 职场文书
酒店员工培训方案
2014/06/02 职场文书
一篇文章带你学习Mybatis-Plus(新手入门)
2021/08/02 Java/Android
详细聊聊关于Mysql联合查询的那些事儿
2021/10/24 MySQL