如何使用salt检查mysql哈希密码

时间:2015-07-09 15:13:01

标签: php mysql

我正在使用教程来设置邮件服务器(它已经正常工作),我还希望使用users表在网站上登录。

教程用于创建帐户的sql是:

df$x[-1] <- df$x[-1][order(df$x[-1], decreasing=T)]
#   x
# 1 4
# 2 9
# 3 8
# 4 7
# 5 6

我看待它的方式,

ENCRYPT('PASSWORD',CONCAT('$ 6 $',SUBSTRING(SHA(RAND()), - 16)))

创建一个盐渍哈希,对吧?事情是盐看起来是一个随机的未存储的值。

我应该如何将其与用户提供的密码进行比较?

Postfix没有问题,因为它有效,所以我不得不遗漏一些东西

1 个答案:

答案 0 :(得分:2)

ENCRYPT函数将输出一个带有盐本身前缀的“盐渍”字符串,因此将其加回加密密码将重新提供原始盐。

当您需要将数据库中的密码与用户输入的密码进行比较时,请使用此类查询

SELECT * FROM `mailserver`.`virtual_users`
 WHERE `email` = '<the email address entered by the user>'
   AND `password` = ENCRYPT('<the password entered by the user>', `password`);