我正在使用bcrypt
nodejs模块。
我对加密和比较密码感到满意,但似乎无法对其进行解密。
我想知道:
bcrypt
模块编码的密码的技巧?谢谢!
答案 0 :(得分:11)
您不使用bcrypt解密密码 - 这是一种单向算法。你要做的是存储原始(盐渍)密码的哈希值。然后你哈希(盐渍)猜测。如果哈希匹配,那么猜测是正确的。
例如,您可以这样做:
// "password"
var stored_hash = '$2a$10$vxliJ./aXotlnxS9HaJoXeeASt48.ddU7sHNOpXC/cLhgzJGdASCe'
bcrypt.compare(guess, stored_hash, function(err, res) {
});
请注意,我没有对此进行腌制,因此您需要这样做。 node-bcrypt
默认情况下会对哈希值进行处理。
答案 1 :(得分:1)
更好的方法是使用此节点模块https://github.com/davidwood/node-password-hash,它可以加密您的密码,并允许使用实际的加密版本来验证加密版本。