<aside> 💡 가장 많이 사용되는 NodeJS의 라이브러리 하나인 bcrypt에 대해 고찰하는 시간을 가져보자

</aside>

bcrypt 사용법

bcrypt의 사용법은 매우 간편하며 공식 홈페이지에 잘 설명 되어져 있다. 아래 링크를 참고하자.

(https://github.com/kelektiv/node.bcrypt.js#readme)

매번 다른 salt에서도 hash 값 비교

별 생각 없이 매우 편리하게 사용하다가 bcrypt는 salt값이 매번 달라지는 것 같은데, 어떻게 match를 잘 구분 할 수 있을까? 라는 생각이 들었다.

1. 의문의 시작: 매번 다른 값을 출력하는 함수?

const hashed = await bcrypt.hash(user.password, 10);
console.log('test - ', hashed);

같은 password, 같은 rounds(10)로 위의 코드를 두번 연속 실행 시켜봤다.

결과는 완전히 달랐다. let first = "$2a$10$UCL1QQXEJRYPDqXj4nSw7uwor/o5g/iF.RglY5Qtca7hxyIFDl4OK” let second = '$2a$10$Eu.9k1BwErkP5PTgDo9y5OBI42fDz/zbZLiq5LdNZ4qO8u0jkBlr2’

이번에 최종적으로 알고 싶은 것은 다음 두 가지 질문이다.