mcrypt を使用してデータベースにパスワードを保存しようとしています。まず第一に、それは機能しますが、ごくたまにしかありません。
これが私の暗号化コードです:
//Encryption/Decryption key
$key = $username.$username.$username.$username.$username;
//Encryption Algorithm
$cipher_alg = MCRYPT_RIJNDAEL_256;
$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg, MCRYPT_MODE_ECB), MCRYPT_RAND);
$password = mcrypt_encrypt($cipher_alg, $key, $pass1, MCRYPT_MODE_CBC, $iv);
これにより、$username、$iv、および $password が MySQL データベースにアップロードされます。
これが私の復号化コードです:
//Encryption/Decryption key
$key = $username.$username.$username.$username.$username;
//Encryption Algorithm
$cipher_alg = MCRYPT_RIJNDAEL_256;
$dbpass = mcrypt_decrypt($cipher_alg, $key, $encpass, MCRYPT_MODE_CBC, $random);
$dbpass = trim($dbpass); // Trim the fat
$username、$iv、および $encpass (暗号化されたパスワード) がデータベースから取得され、ユーザー名を使用してキーが再作成されます。
これは機能しますが、たまにしかありません。理由がわかりません。私の唯一の仮定は、引用符など、暗号化によって生成される文字の一部をデータベースが受け入れることができないということです。
どんな助けでも大歓迎です!