Yii 實現數據加密和解密

在Yii中又不少的數據咱們不可以以明文進行存儲和展現,例如密碼和一些比較重要的文件信息,這時候咱們都須要咱們對這些信息進行加密app

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

1:對密碼進行加密加密

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

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

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

二:生成一個僞隨機數據get

在咱們進行密碼重置的時候,咱們常常會發送一份郵件到用戶郵箱中,給他一個重置的密碼,這時候咱們就能夠使用Yii的僞隨機數據方法給用戶生成一個僞隨機數據做爲密碼hash

//默認生成32爲隨機字符,能夠指定位數生成指定位數的僞隨機數  
$key = Yii::$app->getSecurity()->generateRandomString();

三:Yii常見的數據加密和解密 it

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

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

1:encryptByPassword()和decryptByPassword()密碼

加密:

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

解密:

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

1:encryptByKey()和decryptByKey()

加密:

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

解密:

//$encryptedData:須要解密的信息,$secretKey:加密時使用的密鑰(key)  
$data = Yii::$app->getSecurity()->decryptByKey($encryptedData, $secretKey);
相關文章
相關標籤/搜索