我有一个带有节点后端的postgres datbase。
let hash = bcrypt.hashSync("mypass", 10);
try {
const queryString = `
SELECT *
FROM users where username= 'admin' and password='${hash}'
`;
这将返回0行。
我是否必须返回密码然后运行比较?
try {
const queryString = `
SELECT username, password
FROM users where username= 'admin'
`;
bcrypt.compare(RETURNED PASSWORD, hash, function(err, res) {
if(res) {
// Passwords match
} else {
// Passwords don't match
}
});
答案 0 :(得分:2)
是的,因为bcrypt算法为相同的输入创建了不同的哈希,所以您必须返回哈希密码,然后进行比较。