使用Node.js和MongoDB存储密码

使用Node.js和MongoDB存储密码,第1张

使用Node.js和MongoDB存储密码

使用这个:https :
//github.com/ncb000gt/node.bcrypt.js/

bcrypt是仅针对该用例的少数算法之一。您永远都不能解密密码,只能验证用户输入的明文密码与存储/加密的哈希匹配。

bcrypt非常易于使用。这是我的Mongoose用户架构的片段(在Coffeescript中)。请确保使用异步功能,因为bycrypt速度很慢(故意这样做)。

class User extends SharedUser  defaults: _.extend {domainId: null}, SharedUser::defaults  #Irrelevant bits trimmed...  password: (cleartext, /confirm/i, callback) ->    errorInfo = new errors.InvalidData()    if cleartext != confirm      errorInfo.message = 'please type the same password twice'      errorInfo.errors.confirmPassword = 'must match the password'      return callback errorInfo    message = min4 cleartext    if message      errorInfo.message = message      errorInfo.errors.password = message      return callback errorInfo    self = this    bcrypt.gen_salt 10, (error, salt)->      if error        errorInfo = new errors.InternalError error.message        return callback errorInfo      bcrypt.encrypt cleartext, salt, (error, hash)->        if error          errorInfo = new errors.InternalError error.message          return callback errorInfo        self.attributes.bcryptedPassword = hash        return callback()  verifyPassword: (cleartext, callback) ->    bcrypt.compare cleartext, @attributes.bcryptedPassword, (error, result)->      if error        return callback(new errors.InternalError(error.message))      callback null, result

另外,请阅读本文,这应该使您确信bcrypt是一个不错的选择,并可以帮助您避免“变得井井有条”。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5163783.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存