一、對(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常見的數(shù)據(jù)加密和解密
Yii常見的加密方法有:encryptByPassword()和encryptByKey()
Yii常見的解密方法有: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);
2、encryptByKey()和decryptByKey()
加密:
//$data:需要加密的信息,$secretKey:加密時(shí)使用的密鑰(key) $encryptedData = Yii::$app->getSecurity()->encryptByPassword($data, $secretKey);
解密:
//$encryptedData:需要解密的信息,$secretKey:加密時(shí)使用的密鑰(key) $data = Yii::$app->getSecurity()->decryptByKey($encryptedData, $secretKey);
推薦教程:yii
以上就是yii如何實(shí)現(xiàn)數(shù)據(jù)的加密與解密的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
每個(gè)人都需要一臺(tái)速度更快、更穩(wěn)定的 PC。隨著時(shí)間的推移,垃圾文件、舊注冊(cè)表數(shù)據(jù)和不必要的后臺(tái)進(jìn)程會(huì)占用資源并降低性能。幸運(yùn)的是,許多工具可以讓 Windows 保持平穩(wěn)運(yùn)行。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)