Programing

Node.js 및 MongoDB로 비밀번호 저장

lottogame 2020. 11. 6. 07:45
반응형

Node.js 및 MongoDB로 비밀번호 저장


node.js 및 mongodb를 사용하여 암호 및 기타 민감한 데이터를 안전하게 저장하는 방법에 대한 몇 가지 예를 찾고 있습니다.

모든 것이 mongo 문서의 해시와 함께 저장할 고유 한 소금을 사용하기를 원합니다.

인증을 위해 입력을 솔트하고 암호화하고 저장된 해시와 일치시켜야합니까?

이 데이터를 해독해야한다면 어떻게해야합니까?

개인 키 또는 솔팅 방법이 서버에 안전하게 저장되는 방법은 무엇입니까?

AES와 Blowfish가 모두 좋은 옵션이라고 들었는데, 무엇을 사용해야합니까?

이것을 설계하는 방법에 대한 모든 예가 매우 도움이 될 것입니다!

감사!


이것을 사용하십시오 : 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, 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가 좋은 선택임을 확신 하고 "잘되고 진정으로 효험이있는"사람이되는 것을 방지 할 수 있습니다.


이것은 내가 지금까지 본 최고의 예이며 node.bcrypt.js http://devsmash.com/blog/password-authentication-with-mongoose-and-bcrypt를 사용합니다.

참고 URL : https://stackoverflow.com/questions/6951563/storing-passwords-with-node-js-and-mongodb

반응형