Yiiデータ暗号化と復号化を実現

1650 ワード

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);  

復号化:
//$encryptedData:       ,$secretKey:        (key)  
$data = Yii::$app->getSecurity()->decryptByKey($encryptedData, $secretKey);