본문 바로가기

Nodejs

[NODEJS 입문]14.(pbkdf2-password) 비밀번호 암호화

반응형

npm install --save pbkdf2-password 

사용법

var bkfd2Password = require("pbkdf2-password");
var hasher = bkfd2Password();
var assert = require("assert");
var opts = {
  password: "helloworld"
};
 
hasher(opts, function(err, pass, salt, hash) {
  opts.salt = salt;
  hasher(opts, function(err, pass, salt, hash2) {
    assert.deepEqual(hash2, hash);
 
    // password mismatch
    opts.password = "aaa";
    hasher(opts, function(err, pass, salt, hash2) {
      assert.notDeepEqual(hash2, hash);
      console.log("OK");
    });
  });
});

 

적용이 필요한 부분

/user/login.js       - 로그인시 사용자의 salt로 인증

/user/register.js    - 등록시, salt 생성하여 등록

/user/update.js    - 비밀번호 변경시, 사용자 salt로 변경 필요.

 

1. login.js

var bkdf2Password = require('pbkdf2-password');
var hasher = bkdf2Password();

 

if(user){
hasher({password : passwd , salt : user.salt},(err,pass,salt,hash)=>{
if(uname===user.username && hash ===user.password){
console.log(user,user.displayname);
req.session.user=user;
req.session.displayname=user.displayname;
return req.session.save(()=>{
res.redirect('/user/welcome');
})
}
})
}

 

2. register.js

var bkdf2Password = require('pbkdf2-password');
var hasher = bkdf2Password();

 

//사용자 값 암호화
hasher({password : temp.password},(err,pass,salt,hash)=>{
temp.salt = salt;
temp.password = hash;
})

 

3. update.js

var bkdf2Password = require('pbkdf2-password');
var hasher = bkdf2Password();

 

if(temp.password){
hasher({password:temp.password , salt : user.salt},(err,pass,salt,hash)=>{
user.password = hash;
})
}

 

 

반응형