在node.js中解密加密密码

时间:2015-07-29 08:45:25

标签: node.js

如何解密下一个片段?

crypto.createHash('md5').update(password).digest('hex');

我尝试使用http://lollyrock.com/articles/nodejs-encryption/ 但它不会工作。

1 个答案:

答案 0 :(得分:3)

您的代码显示了一种非常弱的密码哈希方法。我建议您将bcrypt视为您的哈希算法。

但是,匹配密码的常用方法安全地适用于大多数哈希方法(无论您使用MD5还是其他方法)。您不会解密,而是存储散列密码,当用户输入密码时,您可以通过散列刚刚输入的密码并将其与注册或设置密码时存储的值进行比较来验证密码是否正确:< / p>

var existing_hashed_password = // fetched from storage
var login_attempt_hashed = crypto.createHash('md5').update(password).digest('hex');
if ( login_attempt_hashed === existing_hashed_password ) {
  // Successful login
} else {
  // Unsuccessful login
}

如果您使用 salt (您应该使用),那么这会变得稍微复杂一些,因为您必须将相同的盐应用于新的登录尝试。大多数身份验证库都有一个为您执行此操作的功能。