この塩は私のSELECTコマンドを台無しにします:
p‚ÙÕ†¤éÿ5xãø¤ü¥–ä™m›|§Éá\0yå–e
デコードされた出力:
p‚ÙÕ†¤éÿ5xÃø¤ü¥–ä™m›|§Éá\0yå–e
塩なし:
mysql> SELECT userid, username FROM user;
+--------+--------------+
| userid | username |
+--------+--------------+
| 1 | user1 |
| 2 | user2 |
| 3 | user3 |
| 4 | user4 |
+--------+--------------+
4 rows in set (0.00 sec)
塩で:
mysql> SELECT userid, username, salt FROM user;
+--------+--------------+----------------------------------+
| userid | username | salt |
+--------+--------------+----------------------------------+
| 1 | user1 | ]ææ=°ù¡£YÒp£'Rm§Éá yåe | |
| 3 | user2 | ¸ÀçqµgsN\ôü¥ä
ɪÓñ1r¦ôyr$ÅK |
| 4 | user4 | \7øþ ÇãÙr|ú&eå¡%»
yYRìÚ¬E |
+--------+--------------+----------------------------------+
4 rows in set (0.00 sec)
ソルトを生成するために使用している関数:
$salt = mcrypt_create_iv(32, MCRYPT_DEV_RANDOM);
次のようにエスケープします。
$salt = mysql_real_escape_string($salt);
問題: 'salt' を選択すると、User2 の行が表示されません。誰でもなぜですか? 関連する問題: User3 にも改行があり、テーブルがめちゃくちゃになっていて、おそらく上記と同じ問題です。
運が悪かったこと: 各単語を「mysql」で終わるようにグーグル検索しました。何も見つかりませんでした..
ありがとう。