Yii可逆暗号化と復号化

乱数を生成する

  • メソッド:generateRandomString
  • 使用法:

 $key = Yii::$app->security->generateRandomString();

暗号化

  • メソッド:encryptByPassword
  • 使用法:

$password_hash = Yii::$app->getSecurity()->encryptByPassword($password, $key)

パラメータの説明:

パラメータ タイプ 備考
$パスワード 文字列 暗号化するパスワード
$ key 文字列 あなた自身の塩のセット

解読する

  • メソッド:decryptByPassword
  • 使用法:

$data = Yii::$app->getSecurity()->decryptByPassword($password_hash, $key);

パラメータの説明

パラメータ タイプ 備考
$ password_hash 文字列 解読されるコンテンツ
$ key 文字列 あなた自身の塩のセット

例:

$password = '1234567';
$key = Yii::$app->security->generateRandomString();
//加密
$password_hash = base64_encode(Yii::$app->getSecurity()->encryptByPassword($password, $key));//加密入数据库password_hash字段内容
//解密
$data = Yii::$app->getSecurity()->decryptByPassword(base64_decode($password_hash), $key);//解密结果:1234567

しかし、文字列は暗号化されており、暗号化された文字列は文字化けした文字列です。
base64を使って暗号化された文字列を処理することができます。処理された文字列は文字と数字で構成されます。

元のリンク