[개발 일지] 게시판(Bcrypt)

홍범선·2023년 8월 26일
0

MyStory 개발일지

목록 보기
4/27

Bcrypt

사용배경

개발하다가 민감한 정보들이 있었다. 비밀번호, 주민등록번호 등이 있다. 이것을 DB에 그대로 저장하게 되면 보안상에 문제가 생길 거라 생각했다.
그래서 Bcrypt라는 암호화 모듈을 이용하여 DB에 해시값을 저장하게 하였다.

[NODE] 📚 bcrypt 모듈 암호화 원리 & 사용법
위에 블로그를 참고하여 개발하였다.

Bcrpyt 모듈 설치

외부 모듈이기 때문에 npm을 통해 Bcrpyt를 설치한다.

암호화하여 DB에 저장

회원가입(join) api

encrypt함수


패스워드, 주민등록번호는 해시값을 통해 저장한다.

로그인(login) api

Bcrpyt는 양방향이 아닌 단방향이기 때문에 복호화할 수가 없다고 한다. 즉 비교할 때에는 복호화하여 원본값을 비교하는 것이 아닌 해쉬값으로 비교해야한다는 의미이다.

userID값으로 select하여 나온 데이터들의 userPassword를 비교한다. 이 때 compareSync함수를 통해 동기적으로 입력한 password를 해시값으로 바꾼 후 비교한다.

결과


민감한 정보는 해시값으로 저장되는 것을 볼 수 있다.

profile
알고리즘 정리 블로그입니다.

0개의 댓글