如何在MySQL的`encrypt`函数中使用`bcrypt`算法来验证密码?

我已将$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 |

+----------+

如何增加bcrypt对MySQL的支持?

回答:

你不能 MySQL ENCRYPT()函数使用操作系统的crypt()函数-如果您的操作系统不支持bcrypt哈希,则MySQL也将不支持它们。

另外,请勿使用MySQL

ENCRYPT()函数。正如ircmaxell指出的那样,传递给MySQL查询的任何数据都可能最终存储在服务器日志文件中,因此将其用于任何与密码相关的操作都是不安全的。

以上是 如何在MySQL的`encrypt`函数中使用`bcrypt`算法来验证密码? 的全部内容, 来源链接: utcz.com/qa/421076.html

回到顶部