티스토리 뷰
데이터베이스에 비밀번호가 그대로 저장되면 해커가 그냥 호다닥 가져갈 수도 있으니까
비밀번호를 암호화시킬 방법을 찾고 있었습니다.
그때 나타난 bcrypt
bcrypt는 어떤 데이터를 hash로 포장해서 만들어주는 모듈입니다.
좀 더 다양한 설명은 아래 공식 홈페이지에서 찾아보시기 바랍니다.
bcrypt
A bcrypt library for NodeJS.
www.npmjs.com
설치방법
npm install --save bcrypt-nodejs
구현
다른 파일들은 건드릴 필요없이 post역할을 하는 파일인 home.ctrl.js파일만 건드려줬습니다.
먼저 require로 모듈을 가져온 후
회원가입 기능에 bcrypt기능을 넣어주면 됩니다.
여기서 genSalt란 자동으로 hash값을 랜덤으로 바꿔주는 함수입니다.
Salt는 말그대로 소금🧂 으로 해커들이 찾기 어렵게 소금친다라고 이해하면 쉬울 것 같습니다.
vscode에서 그 함수에 마우스 커서를 대면 아래 사진처럼 그 함수를 어떻게 사용해야되는지 나옵니다.
그것을 보면 파라미터로 데이터를 처리할 라운드 수와 콜백함수를 받는 것을 볼 수 있습니다.
저는 콜백함수로 에러와 결과값을 받아와 data.password를 hash값으로 바꿔주었습니다.
그런데도 데이터베이스에 hash값이 아닌 원래 비밀번호가 나왔습니다.
답은 query에 들어갈 데이터인 params에... data.password가 아니라 hash값으로 바꾼 값인 hash를 넣어줘야 했었습니다. 😫
그런데도 에러...... 에러 메시지를 보니까 데이터가 너무 길어서 안들어가고 있다는 것을 알게 되었고
hash값은 비밀번호보다 더 길기 때문에 데이터베이스의 데이터 길이를 높여주어야 된다는 것을 알게 되었습니다. 그래서 저같은 경우는 varchar(100)으로 해주었습니다.
해쉬값으로 잘 바뀐 비밀번호를 볼 수 있습니다.
'백엔드 > node.js공부' 카테고리의 다른 글
[nodejs]간단한 게시판 만들기(2)-글쓰기 기능 (0) | 2021.01.20 |
---|---|
간단한 로그인&회원가입 기능 구현(5) (0) | 2021.01.16 |
[nodejs] 간단한 게시판 만들기(1) (0) | 2021.01.13 |
[nodejs] 간단한 로그인 & 회원가입 기능 구현(3) (0) | 2021.01.12 |
[nodejs] 간단한 로그인 & 회원가입 기능 구현(2) (0) | 2021.01.12 |
- JavaScript
- 숫자야구게임
- 코딩테스트
- 코드테스트
- Level 1
- tolowercase
- Replace
- AWS
- SQL
- 백준 7569 node
- slice
- 백준
- nodejs
- Express
- 프로그래머스
- 백준 7562 node
- GROUP BY
- 정규표현식
- 로그인
- left join
- 토마토3차원
- nodemailer error
- 바이러스 dfs
- 회원가입
- 카카오2018[1차]
- smtp error
- 534 error
- Split
- JOIN
- sort
- Total
- Today
- Yesterday