본문 바로가기
백엔드/NodeJs

[NodeJs] 사용자 비밀번호 암호화 하기 bcrypt

by jinwanseo 2021. 4. 29.
728x90

[NodeJs] 사용자 비밀번호 암호화 하여 저장하기 bcrypt 

 

nodeJs / javascript 로 구축한 웹서비스에

회원가입 및 로그인 기능을 추가하였을때

클라이언트의 아이디와 비밀번호를

서비스를 위해 데이터베이스에 저장하게 되는데

이때 비밀번호를 암호화 하지 않고 저장하면 안된다.

사용자의 비밀번호가 웹서비스 제공자에게

노출될 위험이 있기 때문이다.

 

그래서 의무적으로 웹서비스시

사용자 정보를 저장할때는 암호화를 거쳐야 한다.

관련 모듈은 여러가지가 있지만

비교적 구현이 쉬운 bcrypt를 다루어 보겠다.

 

  npm bcrypt 설치

//터미널에 입력, npm 설치
npm install bcrypt

 

  간단 샘플코드

//bcrypt 선언
const bcrypt = require('bcrypt');
//해킹 방지를 위한 접근 제한 변수
const saltRounds = 10;
//암호 (암호화 전)
const beforePassword = '12345';
//암호 (암호화 후)
const afterPassword = '';


//암호화를 거쳐 저장
bcrypt.hash(beforePassword, saltRounds, function(err, hash) {
    try{
    	afterPassword = hash;
        console.log(afterPassword);
    }
    catch(err){//예외처리
    	console.log(err);
    }
});

//암호 확인
bcrypt.compare(beforePassword, afterPassword, function(err, result) {
	//result는 암호가 맞는 경우 true , 암호가 틀린 경우 false로 반환
    try{
      //암호가 맞는 경우
      if(result)
          console.log('딩동댕!');
      else 
          console.log('땡!');
    }
    catch(err){//예외처리
    	console.log(err);
    }
});

 

728x90

댓글