Tag: 密码

在NodeJS中重置密码

我做了一个设置,使用NodeJS /护照更新用户的密码。 我遵循这个伟大的指南: http : //sahatyalkabov.com/how-to-implement-password-reset-in-nodejs/ 。 这99%的工作。 我不得不修改它包含一些条纹function。 但是我担心我有一个严重的错误,我无法find它。 用户现在可以通过发送电子邮件的过程,input一个新的密码,并login。另一封电子邮件说,他们的密码已成功更新。 全部完美。 然而。 因为某些原因。 新密码没有被保存。 用户只能使用旧密码login。 我已经尝试了所有我能想到的方法来解决这个问题。 我还有其他几个程序员看这个,他们中没有一个能够弄清楚它在世界上是如何工作的。 目前的想法是,会议可能没有正确结束,但我们试图破坏会议,它仍然没有工作。 任何帮助不胜感激。 完整设置: 用户模式: var UserSchema = new mongoose.Schema({ username: { type: String, required: true, unique: true }, password: String, datapoint: String, email: { type: String, required: true, unique: true }, resetPasswordToken: String, resetPasswordExpires: Date }); UserSchema.pre('save', […]

在Node.js中实现JSON Webencryption

我正在寻找一种在Node.js服务中使用JSON Web Encryption(JWE)的方法。 然而,我只是设法find相关的标准JWS的实现 。 然而,有几个其他语言的库,如jose4j 。 有没有人成功地在Javascript中实现JWE? 恐怕我会使用较低级别的原语自己实施规范。 有更好的方法吗?

Passport-Local Mongoose – 更改密码?

我使用Passport-Local Mongoose来encryption帐户的密码。 但我不知道如何更改密码。 任何人都知道该怎么办? TKS

如何使用id-aes256-GCM与Node.JSencryption? “TypeError:DecipherFinal失败”

我想要使​​用经过validation的encryptionscheme(如AES-GCM)在Node.js中encryption一些数据。 如果我运行以下示例代码 app.get("/test", function(req,res) { var key = "12345678901234567890123456789012"; var iv = "123456789012"; var cipher = crypto.createCipheriv("id-aes256-GCM",key.toString("binary"),iv.toString("binary")); var decipher = crypto.createDecipheriv("id-aes256-GCM",key.toString("binary"),iv.toString("binary")); console.log(decipher.update(cipher.update("bla"))); console.log(decipher.update(cipher.final())); console.log(decipher.final()); }); 我没有得到一个控制台输出,但错误消息“TypeError:DecipherFinal失败”。 如果我使用密码AES-256-CTRF而不是“id-aes256-GCM”,这个代码工作正常,并在控制台上打印“bla”。 我究竟做错了什么? 编辑: 进一步调查显示,cipher.update(“bla”)返回“â”(单个字符…奇怪),cipher.final()返回一个空string。 我认为这不能是一个正确的密文,至less应该有明文的大小…

使用pbkdf2的SALT和HASH

我正在使用以下方法从nodejs中的encryption库中创build一个腌制和散列的密码: crypto.randomBytes(size, [callback]) crypto.pbkdf2(password, salt, iterations, keylen, callback) 对于randomBytes调用(创buildSALT)我应该使用什么大小? 我听说过128位盐,也许高达256位。 它看起来像这个函数使用字节的大小,所以我可以假设大小为32(256位)就足够了? 对于pbkdf2调用,什么是很好的迭代次数,key(keylen)的长度是多less? 此外,对于存储,我已经看到了盐,长度,迭代和derviedkey存储在同一列的例子。 我正在使用一个例子来分隔4 :: ,即: salt::derivedKey::keyLength::iterations 这样做,我可以分开::以获得4个值,所以我可以根据提供的密码生成派生的密钥,看看它是否匹配。 这是存储这个的正确方法吗? 还是应该在结合这些价值观时多一些“欺骗”?

密码的Node.jsencryption

我目前使用以下encryption密码: var pass_shasum = crypto.createHash('sha256').update(req.body.password).digest('hex'); 你能否build议改进以使项目更安全?