honey_pot

[Node.js] bcrypt 를 이용해 round salting + hashing 하기 본문

Node.js

[Node.js] bcrypt 를 이용해 round salting + hashing 하기

_tera_ 2021. 6. 18. 14:01

https://www.npmjs.com/package/bcrypt


설치

쓰고 있는 노드 버전에 맞는 패키지를 설치해야 한다. 그렇지 않으면 예시의 에러가 발생한다.

쓰고 있는 버전은 14.16.1 이므로 bcrypt는 3.0.6 이상 버전을 설치한다.

default는 최신 버전이므로 그냥 npm i bcrypt 입력

app.js 에 const bcrypt = require("bcrypt"); 추가하고

saltRounds 를 지정한다.

rounds 수에 "따라 hash의 양이 달라진다.

 


비밀번호 해싱 방법

두 가지가 있는데 여기서는 자동으로 salt와 hash를 생성하는

hash() 메서드 방법으로 사용했다.

회원가입 post 메서드 안에 hash(바꿀 비밀번호, saltRounds, 콜백) 형태로 작성한다.

password: hash 로 변경하여 패스워드에 결과로 나오는 해시코드를 저장한다.

비밀번호 "123456" 을 입력했을때 데이터 베이스에 저장되는 해시형태


비밀번호를 체크 (로그인) 하는 방법

findOne(받은 아이디/이메일) 를 통해 얻은 foundUser 데이터의 비밀번호와 로그인창에서 받은 비밀번호를

bcrypt.compare( 받은 password, foundUser내의 password, 콜백) 을 이용해 비교한다. 얻은 result가 true일"때 secrets 페이지를 렌더링한다.

Comments