我不确定正确的技术措辞,所以请原谅我的标题,但这就是问题所在。我有一个 MySQL 数据库,在用户表中我有 *user_name*、一个 *password_salt* 和一个包含密码和 salt的 md5密码。在一个程序中,用户连接,我收到一个要发送的查询以验证用户。当用户连接时,我需要一种方法来选择他们的用户名,并将给定的密码与存储的密码进行比较,这需要在 WHERE 语句的某处检索盐(我猜)。
这是我假设的“例子”:
SELECT user_name
FROM users
WHERE user_name='$nick' AND
password = md5(CONCAT('$md5pass', md5((select password_salt FROM users where user_name='$nick'))))
LIMIT 1
分辨率更新:得到它的工作,感谢您的建议,一个正常的选择就足够了,问题是 sql-auth api 没有收到密码,除非指定了端口。