bcrypt - 데이터베이스에 패스워드를 안전하게 보관하기

younoah·2022년 2월 2일
0

[nodeJS]

목록 보기
15/15

bcrypt란?

bcrypt는 암호화 알고리즘이다. 비밀번호를 암호화해서 데이터베이스에 안전하게 저장하기 위해 사용한다.


bcrypt구조

암호화 알고리즘 + 암호화 비용 + Salt + Hash

암호화 알고리즘: 어떤 암호화 알고리즘을 사용했는지

암호화 비용 : 암호화를 할 때 얼만큼의 복잡도를 진행했는지 (Salt의 길이, 일반적으로 10~12정도를 많이 사용한다.)

Salt : 암호화를 더욱 복잡하게 하기 위함

Hash : 암호화 된 정보


bcrypt 사용해보기

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정도를 많이 사용한다.

profile
console.log(noah(🍕 , 🍺)); // true

0개의 댓글