Bcrypted value($2y$10$zQaDT8hXM4pLmBdwN0xEseda/oKJAQKMKMzUrV8jbs6Epz28BXzBS
)のパスワード(qwe
)。しかし、確認すると、間違った結果のハッシュ値が表示されます。
mysql> select '$2y$10$zQaDT8hXM4pLmBdwN0xEseda/oKJAQKMKMzUrV8jbs6Epz28BXzBS' = encrypt('qwe', '$2y$10$zQaDT8hXM4pLmBdwN0xEseda/oKJAQKMKMzUrV8jbs6Epz28BXzBS') as is_valid;
+----------+
| is_valid |
+----------+
| 0 |
+----------+
select encrypt('qwe', '$2y$10$zQaDT8hXM4pLmBdwN0xEseda/oKJAQKMKMzUrV8jbs6Epz28BXzBS') as hash;
+---------------+
| hash |
+---------------+
| $2tBKnsbV2Szg |
+---------------+
md5
正常に動作します
mysql> select '$1$$.dCRcHz4ApIYzcA0g/qz3/' = encrypt('qwe', '$1$$.dCRcHz4ApIYzcA0g/qz3/') as is_valid;
+----------+
| is_valid |
+----------+
| 1 |
+----------+
MySQLにbcrypt
のサポートを追加するには?
できません。 MySQL ENCRYPT()
関数はオペレーティングシステムのcrypt()
関数を使用します—オペレーティングシステムがbcryptハッシュをサポートしていない場合、MySQLもそれらをサポートしません。
また、MySQL ENCRYPT()
関数を使用しないでください。 ircmaxellが述べたように、MySQLクエリに渡すデータはすべてサーバーログファイルに記録される可能性があるため、パスワード関連のデータに使用するのは安全ではない可能性があります。