npm install bcrypt
bcrypt를 임포트하여, hash, compare 을 사용하면 된다.
import bcrypt from "bcrypt"
const hash = await bcrypt.hash(password, intensity);
const result = await bcrypt.compare(password, hash);
if(result){
...
}
위 코드에서 intensity 부분은, saltOrRounds 를 입력하는 공간인데 bcrypt 는 해시의 수준을 높이기 위해서 강도 정도를 지정할 수 있다. 강도 값이 높을수록 해시 연산이 오래걸려 무작위 공격으로부터 안전해진다. 하지만 사용자가 로그인하거나 엑세스할 때 마다 해시가 진행되기 때문에 적당한 값을 지정해야 한다.
const result = await bcrypt.compare(password, hash);
첫 번째 인자에는 새로 들어온 암호화하지 않은 비밀번호, 두 번째 인자에는 기존 저장된 해시 값을 넣으면 두 키가 동일한지 비교해준다. 이 결과로 패스워드가 동일한지 판단하면 된다.