yii如何實現數據的加密與解密

yii如何實現數據的加密與解密

一、對密碼進行加密和驗證客戶端傳輸的密碼是否正確

1、對密碼進行加密

$hash?=?Yii::$app->getSecurity()->generatePasswordHash($password);

2、對客戶端傳遞的密碼進行驗證,判斷是否正確

//$password:客戶端傳遞的明文密碼,$hash:對密碼進行加密后的哈希值? if?(Yii::$app->getSecurity()->validatePassword($password,?$hash))?{? ??//?驗證成功(密碼正確)? }?else?{? ??//?驗證失敗(密碼錯誤)? }

二、生成一個偽隨機數據

在我們進行密碼重置的時候,我們經常會發(fā)送一份郵件到用戶郵箱中,給他一個重置的密碼,這時候我們就可以使用Yii的偽隨機數據方法給用戶生成一個偽隨機數據作為密碼

//默認生成32為隨機字符,可以指定位數生成指定位數的偽隨機數? $key?=?Yii::$app->getSecurity()->generateRandomString();

三、Yii常見的數據加密和解密

Yii常見的加密方法有:encryptByPassword()和encryptByKey()

Yii常見的解密方法有:decryptByPassword()和decryptByKey()

1、encryptByPassword()和decryptByPassword()

加密:

//$data:需要加密的信息,$secretKey:加密時使用的密鑰(key)? $encryptedData?=?Yii::$app->getSecurity()->encryptByPassword($data,?$secretKey);

解密:

//$encryptedData:需要解密的信息,$secretKey:加密時使用的密鑰(key)? $data?=?Yii::$app->getSecurity()->decryptByPassword($encryptedData,?$secretKey);

2、encryptByKey()和decryptByKey()

加密:

//$data:需要加密的信息,$secretKey:加密時使用的密鑰(key)? $encryptedData?=?Yii::$app->getSecurity()->encryptByPassword($data,?$secretKey);

解密:

//$encryptedData:需要解密的信息,$secretKey:加密時使用的密鑰(key)? $data?=?Yii::$app->getSecurity()->decryptByKey($encryptedData,?$secretKey);

推薦教程:yii

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享