node.js - 散列通过,比较结果
问题描述
我有一个带有节点后端的 postgres 数据库。
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
}
});
解决方案
是的,因为 bcrypt 算法为相同的输入创建不同的哈希,所以你必须返回哈希密码然后比较它。
推荐阅读
- embedded - 硬件中断如何在没有任何事先设置的情况下触发软件处理程序
- python - 如何使用 Selenium Python 和 Webdriver 打印下拉列表中存在的月份列表
- java - 我可以为我的桌面应用程序实现谷歌登录和应用内购买吗?
- scala - 奇怪的 Scala 语法,其中 Future 被映射使得“==”和“!=”只出现一个操作数(而不是两个)
- java - 尝试调用虚方法(空对象引用)
- r - R:函数内部的 dcast 找不到传递的变量
- reactjs - 打字稿只能在 React 项目的几个文件中使用吗?
- html - 在css上使用fontface在网页中自定义字体
- reactjs - react-native 的 borderRadius 使 backgroundColor 透明
- vuejs2 - 如何使用 VueJS 计算选定的复选框