我已将$2y$10$zQaDT8hXM4pLmBdwN0xEseda/oKJAQKMKMzUrV8jbs6Epz28BXzBS密码(qwe)的值()加密。但是当我验证时,我得到了错误的结果哈希值。
$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 工作良好
md5
mysql> select '$1$$.dCRcHz4ApIYzcA0g/qz3/' = encrypt('qwe', '$1$$.dCRcHz4ApIYzcA0g/qz3/') as is_valid; +----------+ | is_valid | +----------+ | 1 | +----------+
如何增加bcrypt对MySQL的支持?
bcrypt
你不能 MySQL ENCRYPT()函数使用操作系统的crypt()函数-如果您的操作系统不支持bcrypt哈希,则MySQL也将不支持它们。
ENCRYPT()
crypt()
另外,请勿使用MySQL ENCRYPT()函数。正如ircmaxell指出的那样,传递给MySQL查询的任何数据都可能最终存储在服务器日志文件中,因此将其用于任何与密码相关的操作都是不安全的。