SELECT
SHA1(CONCAT(users.salt, '$password')) = users.password
FROM users
WHERE
users.username = '$username'
如果$username
存在,这将返回true,不管什么密码=/SQL帮助CONCAT
II只希望它返回true,如果用户名和密码是正确的
什么我想要的是,我希望它采取盐和密码,重新shaha与sha1并与用户输入比较
我做错了什么?
SELECT
SHA1(CONCAT(users.salt, '$password')) = users.password
FROM users
WHERE
users.username = '$username'
如果$username
存在,这将返回true,不管什么密码=/SQL帮助CONCAT
II只希望它返回true,如果用户名和密码是正确的
什么我想要的是,我希望它采取盐和密码,重新shaha与sha1并与用户输入比较
我做错了什么?
你没有说哪个数据库,但我不相信你可以像你所做的那样在select子句中编写一个关系表达式。尝试
SELECT username
FROM users
WHERE
users.username = '$username' and
SHA1(CONCAT(users.salt, '$password')) = users.password
如果你得到一个行回来匹配的密码;如果没有行返回,则密码不匹配或用户不存在。
密码检查应在where子句中:
SELECT
'success' as Result
FROM users
WHERE
users.username = '$username'
AND SHA1(CONCAT(users.salt, '$password')) = users.password
这应该返回与一列一列,如果检查成功;否则,它将返回一个空行集。
SELECT CAST(1 AS bit)
FROM users
WHERE
username = '$username' AND
SHA1(CONCAT(salt, '$password')) = password