1. 程式人生 > 程式設計 >Yii 實現資料加密和解密的示例程式碼

Yii 實現資料加密和解密的示例程式碼

在Yii中又很多的資料我們不能夠以明文進行儲存和展示,例如密碼和一些比較重要的檔案資訊,這時候我們都需要我們對這些資訊進行加密

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

1:對密碼進行加密

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

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

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

二:生成一個偽隨機資料

在我們進行密碼重置的時候,我們經常會發送一份郵件到使用者郵箱中,給他一個重置的密碼,這時候我們就可以使用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); 

1:encryptByKey()和decryptByKey()

加密:

//$data:需要加密的資訊,$secretKey:加密時使用的金鑰(key) 
$encryptedData = Yii::$app->getSecurity()->encryptByKey($data,$secretKey:加密時使用的金鑰(key) 
$data = Yii::$app->getSecurity()->decryptByKey($encryptedData,$secretKey);

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。