5
我正在使用bcrypt來生成鹽和哈希密碼,但我不認爲它是非常安全的。 當我使用以下代碼:Bcrypt在散列密碼時不安全嗎?
bcrypt.genSalt(10, function(err, salt) {
user.salt = salt;
bcrypt.hash(password, salt, function(err, hash) {
user.hashed_password = hash;
console.log(user.salt);
console.log(user.hashed_password);
user.save(function(err) {
if (err) console.log(err);
console.log("saved");
});
});
});
在一個實例中,所述鹽是:$2a$10$mFFjRpY1Vrq7Fy1fFp0fMO
和hashed_password是:$2a$10$mFFjRpY1Vrq7Fy1fFp0fMOVnlv9cKgAFdCQ5xdtlP6UoKz90i1FMu
哈希密碼的開始是完全相同的作爲鹽。如果攻擊者能夠訪問salt,那麼他是不是可以從hashed_password中刪除salt,或者使用蠻力或者使用預先確定的哈希值來確定密碼?
我一直以爲這應該是散列密碼的順序:
hash(salt + password)
不:
salt + hash(password)