Yii 實(shí)現(xiàn)數(shù)據(jù)加密和解密的示例代碼
在Yii中又很多的數(shù)據(jù)我們不能夠以明文進(jìn)行存儲(chǔ)和展示,例如密碼和一些比較重要的文件信息,這時(shí)候我們都需要我們對(duì)這些信息進(jìn)行加密
一:對(duì)密碼進(jìn)行加密和驗(yàn)證客戶端傳輸?shù)拿艽a是否正確
1:對(duì)密碼進(jìn)行加密
$hash = Yii::$app->getSecurity()->generatePasswordHash($password);
2:對(duì)客戶端傳遞的密碼進(jìn)行驗(yàn)證,判斷是否正確
//$password:客戶端傳遞的明文密碼,$hash:對(duì)密碼進(jìn)行加密后的哈希值 if (Yii::$app->getSecurity()->validatePassword($password, $hash)) { // 驗(yàn)證成功(密碼正確) } else { // 驗(yàn)證失敗(密碼錯(cuò)誤) }
二:生成一個(gè)偽隨機(jī)數(shù)據(jù)
在我們進(jìn)行密碼重置的時(shí)候,我們經(jīng)常會(huì)發(fā)送一份郵件到用戶郵箱中,給他一個(gè)重置的密碼,這時(shí)候我們就可以使用Yii的偽隨機(jī)數(shù)據(jù)方法給用戶生成一個(gè)偽隨機(jī)數(shù)據(jù)作為密碼
//默認(rèn)生成32為隨機(jī)字符,可以指定位數(shù)生成指定位數(shù)的偽隨機(jī)數(shù) $key = Yii::$app->getSecurity()->generateRandomString();
三:Yii常見(jiàn)的數(shù)據(jù)加密和解密
Yii常見(jiàn)的加密方法有:encryptByPassword()和encryptByKey()
Yii常見(jiàn)的解密方法有:decryptByPassword()和decryptByKey()
1:encryptByPassword()和decryptByPassword()
加密:
//$data:需要加密的信息,$secretKey:加密時(shí)使用的密鑰(key) $encryptedData = Yii::$app->getSecurity()->encryptByPassword($data, $secretKey);
解密:
//$encryptedData:需要解密的信息,$secretKey:加密時(shí)使用的密鑰(key) $data = Yii::$app->getSecurity()->decryptByPassword($encryptedData, $secretKey);
1:encryptByKey()和decryptByKey()
加密:
//$data:需要加密的信息,$secretKey:加密時(shí)使用的密鑰(key) $encryptedData = Yii::$app->getSecurity()->encryptByKey($data, $secretKey);
解密:
//$encryptedData:需要解密的信息,$secretKey:加密時(shí)使用的密鑰(key) $data = Yii::$app->getSecurity()->decryptByKey($encryptedData, $secretKey);
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
TP5(thinkPHP5框架)實(shí)現(xiàn)顯示錯(cuò)誤信息及行號(hào)功能的方法
這篇文章主要介紹了TP5(thinkPHP5框架)實(shí)現(xiàn)顯示錯(cuò)誤信息及行號(hào)功能的方法,結(jié)合實(shí)例形式分析了thinkPHP5顯示錯(cuò)誤信息及行號(hào)的相關(guān)配置文件與設(shè)置修改方法,需要的朋友可以參考下2019-06-06php+jQuery.uploadify實(shí)現(xiàn)文件上傳教程
這篇文章主要介紹了php+jQuery.uploadify實(shí)現(xiàn)文件上傳教程,需要的朋友可以參考下2014-12-12php ajax數(shù)據(jù)傳輸和響應(yīng)方法
今天小編就為大家分享一篇php ajax數(shù)據(jù)傳輸和響應(yīng)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08PHP實(shí)例分享判斷客戶端是否使用代理服務(wù)器及其匿名級(jí)別
最近做的一個(gè)項(xiàng)目,要用到判斷客戶端是否使用代理,以及其匿名級(jí)別,翻查了一些文件,下面記錄下來(lái),分享給大家2014-06-06