检查数组中的电子邮件和密码哈希
Check e-mail and password hash from an array
暗示我有一个包含电子邮件和密码组合的数组,即:
["john@doe.com", "johnspasswordhashhere", "janet@doe.com", "janetpasswordhashhere", "tim@doe.com", "timspasswordhashhere" ]
如何比较提供的电子邮件和密码哈希值是否匹配?我需要用bcrypt.compare(passtotestvar, passhash)
来比较。
您可以先对用户和密码进行排序,然后遍历每个用户以检查凭据
const arr = ["john@doe.com", "johnspasswordhashhere", "janet@doe.com", "janetpasswordhashhere", "tim@doe.com", "timspasswordhashhere"]
const sorted = arr.reduce((a, e, i) => (i % 2 || a.push([]), a[a.length - 1].push(e), a), [])
console.log(sorted)
然后你可以使用 bcrypt 的比较功能,它会为你完成所有工作:
// from DB
const users = {
'john@doe.com': 'HASHEDPW',
'janet@doe.com': 'HASHEDPW',
'tim@doe.com': 'HASHEDPW'
}
sorted.forEach(([email, password]) => {
bcrypt.compare(password, users[email]).then((e, r) => {
// r = true if hash = hashed pw
})
})
暗示我有一个包含电子邮件和密码组合的数组,即:
["john@doe.com", "johnspasswordhashhere", "janet@doe.com", "janetpasswordhashhere", "tim@doe.com", "timspasswordhashhere" ]
如何比较提供的电子邮件和密码哈希值是否匹配?我需要用bcrypt.compare(passtotestvar, passhash)
来比较。
您可以先对用户和密码进行排序,然后遍历每个用户以检查凭据
const arr = ["john@doe.com", "johnspasswordhashhere", "janet@doe.com", "janetpasswordhashhere", "tim@doe.com", "timspasswordhashhere"]
const sorted = arr.reduce((a, e, i) => (i % 2 || a.push([]), a[a.length - 1].push(e), a), [])
console.log(sorted)
然后你可以使用 bcrypt 的比较功能,它会为你完成所有工作:
// from DB
const users = {
'john@doe.com': 'HASHEDPW',
'janet@doe.com': 'HASHEDPW',
'tim@doe.com': 'HASHEDPW'
}
sorted.forEach(([email, password]) => {
bcrypt.compare(password, users[email]).then((e, r) => {
// r = true if hash = hashed pw
})
})