我有$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查询的任何数据都可能最终出现在服务器日志文件中,因此将其用于与密码相关的任何内容都可能是不安全的.