我们正在使用此功能在应用中加密我们的密码。当我们需要实际字符串时如何解密它们。var crypto = require('crypto');
function encryptPassword(password) {
var salt = new Buffer('priotzen', 'base64');
return crypto.pbkdf2Sync(password, salt, 10000, 64).toString('base64');
}
谢谢:)
答案 0 :(得分:1)
您提供的代码会生成单向哈希。如果使用此方法,则可以通过比较散列值来验证密码。无法解密现有密码。如果用户忘记了密码,则会重置密码。
如果您真的想拥有可检索的密码,那么您需要查看加密而不是哈希算法。对于此类应用,对称密钥加密(如AES)可能是合适的。
请记住,加密在计算上比散列要昂贵得多,而且安全性较低。哈希几乎总是首选密码。除非有一些非常令人信服的理由要求可检索密码,否则您应该引导客户端使用单向哈希密码。