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
'백엔드 > NodeJs' 카테고리의 다른 글
[NodeJs] 구글 아이디로 로그인 하기 구현 (이메일 등 정보 받아오기) (0) | 2021.05.08 |
---|---|
[NodeJs] 페이스북으로 로그인하기 구현 (이메일 등 정보 받아오기) (0) | 2021.05.05 |
[NodeJs] 간단하게 데이터 베이스 사용하기 lowdb (0) | 2021.04.27 |
[NodeJs] Javascript로 엑셀 파일 생성 및 저장 불러오기 (1) | 2021.04.24 |
[NodeJs] Passport 사용 설명 및 예제 (0) | 2021.04.23 |
댓글