gpt4 book ai didi

node.js - 如何在 Node.js 中解密加密的密码

转载 作者:可可西里 更新时间:2023-11-01 09:56:23 25 4
gpt4 key购买 nike

我想为用户创建一个更改密码页面。当我将用户保存在数据库(mongodb)中时,我加密了密码。

User.virtual('password')
.set(function(password) {
this._password = password;
this.salt = this.makeSalt();
this.hashed_password = this.encryptPassword(password);
})
.get(function() { return this._password; });

User.method('authenticate', function(plainText) {
return this.encryptPassword(plainText) === this.hashed_password;
});

User.method('makeSalt', function() {
return Math.round((new Date().valueOf() * Math.random())) + '';
});

User.method('encryptPassword', function(password) {
return crypto.createHmac('sha1', this.salt).update(password).digest('hex');
});

我不知道如何解密才能取回原始密码。任何帮助将不胜感激。

最佳答案

密码是散列的,没有加密,你无法取回原来的密码——这就是散列的全部意义所在,它是一种单向函数。您永远不需要取回原件,因为您没有合法用途。要验证用户,您需要对他们提供给您的密码进行散列处理,方法与存储的密码相同,然后比较散列值。

关于node.js - 如何在 Node.js 中解密加密的密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8754513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com