使用node.js加密/解密密码

时间:2013-02-14 09:51:31

标签: node.js bcrypt

我正在使用bcrypt nodejs模块。

我对加密和比较密码感到满意,但似乎无法对其进行解密。

我想知道:

  1. 如何使用nodejs加密/解密密码(您使用的是哪个模块或方法)?
  2. 是否有解密用bcrypt模块编码的密码的技巧?
  3. 谢谢!

2 个答案:

答案 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,它可以加密您的密码,并允许使用实际的加密版本来验证加密版本。