API テスト スイートでは、次のコードを使用して、ユーザーのパスワードを暗号化して保存しています。
$encryptionKey = sha1(microtime(true) . mt_rand(PHP_INT_MAX / 10, PHP_INT_MAX));
setcookie('key', $encryptionKey, 0);
$_SESSION['username'] = $_POST['username'];
$_SESSION['encryptedPassword'] = mcrypt_encrypt(MCRYPT_BLOWFISH, $encryptionKey, $_POST['password'], MCRYPT_MODE_ECB);
パスワードを取得するために、次のコードを使用しています。
$password = mcrypt_decrypt(MCRYPT_BLOWFISH, $_COOKIE['key'], $_SESSION['encryptedPassword'], MCRYPT_MODE_ECB);
格納された値に 5 つのヌル バイトが追加される場合があるようです。したがって、var_dump($password)
以下を返します。
string(8) "123"
var_export($password)
以下を返します。
'123' . "\0" . '' . "\0" . '' . "\0" . '' . "\0" . '' . "\0" . ''
3 つの文字が表示されますが、 8 つvar_dump()
あると主張していることに注意してください。現在、この問題を回避するために使用していますが、この問題を解決する方法を知りたいです。trim()
ありがとうございました。