Yiiデータ暗号化と復号化を実現
Yiiでは多くのデータを明文で保存したり展示したりすることはできません.例えば、パスワードや重要なファイル情報などです.この場合、これらの情報を暗号化する必要があります.
一:パスワードを暗号化し、クライアントから送信されたパスワードが正しいかどうかを検証する
1:パスワードの暗号化
2:クライアントから渡されたパスワードを検証し、正しいかどうかを判断する
二:擬似ランダムデータの生成
私たちがパスワードのリセットを行うとき、私たちはよくメールをユーザーのメールボックスに送信して、彼にリセットのパスワードをあげて、この時私たちはYiiの擬似ランダムデータの方法を使ってユーザーに擬似ランダムデータをパスワードとして生成することができます.
三:Yiiの一般的なデータ暗号化と復号化
Yiiの一般的な暗号化方法は、encryptByPassword()とencryptByKey()である.
Yiiの一般的な復号方法は、decryptByPassword()とdecryptByKey()である.
1:encryptByPassword()とdecryptByPassword()
暗号化:
復号化:
1:encryptByKey()とdecryptByKey()
暗号化:
復号化:
一:パスワードを暗号化し、クライアントから送信されたパスワードが正しいかどうかを検証する
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);