source

Node.js 및 MongoDB를 사용한 비밀번호 저장

manysource 2023. 3. 26. 11:36

Node.js 및 MongoDB를 사용한 비밀번호 저장

node.js 및 mongodb를 사용하여 비밀번호 및 기타 기밀 데이터를 안전하게 저장하는 방법의 예를 찾고 있습니다.

mongo 문서에 해시 옆에 저장할 고유한 소금을 모두 사용했으면 합니다.

인증의 경우 입력 내용을 소금에 절이고 암호화하여 저장된 해시에 일치시켜야 합니까?

이 데이터를 복호화할 필요가 있습니까?복호화할 경우 어떻게 해야 합니까?

개인 키 또는 솔팅 방법은 어떻게 서버에 안전하게 저장됩니까?

AES와 복어 모두 좋은 옵션이라고 들었습니다만, 어떤 것을 사용하면 좋을까요?

디자인 방법에 대한 어떤 예라도 매우 도움이 될 것입니다.

감사합니다!

사용방법 : 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.http://http://devsmash.com/blog/password-authentication-with-mongoose-and-bcrypt 를 사용합니다.

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