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
'source' 카테고리의 다른 글
django 테스트클라이언트를 사용한JSON 전송 (0) | 2023.03.26 |
---|---|
커스텀 투고 타입의 연간/월간 아카이브 (0) | 2023.03.26 |
jQuery get JSON 결과를 변수에 저장 (0) | 2023.03.26 |
특정 페이지에서 특정 J 실행 Wordpress (0) | 2023.03.26 |
JQuery Ajax Post에서 500개의 내부 서버 오류가 발생함 (0) | 2023.03.26 |