bcrypt는 암호화 알고리즘이다. 비밀번호를 암호화해서 데이터베이스에 안전하게 저장하기 위해 사용한다.
암호화 알고리즘 + 암호화 비용 + Salt + Hash
암호화 알고리즘: 어떤 암호화 알고리즘을 사용했는지
암호화 비용 : 암호화를 할 때 얼만큼의 복잡도를 진행했는지 (Salt의 길이, 일반적으로 10~12정도를 많이 사용한다.)
Salt : 암호화를 더욱 복잡하게 하기 위함
Hash : 암호화 된 정보
bcrypt
라이브러리를 설치해주자.
$ npm i bcrypt
코드
import bcrypt from 'bcrypt';
// 암호화
const password = 'qwer1234!';
const hashed = bcrypt.hashSync(password, 10); // 2번째 인자는 salt의 길이
console.log(`password: ${password}, hashed: ${hashed}`);
// 검사하기
console.log(bcrypt.compareSync('qwer1234!', hashed)); // true
console.log(bcrypt.compareSync('abcd1234!', hashed)); // false
salt의 길이는 일반적으로 10~12정도를 많이 사용한다.