bcryptjs

암호화 모듈

salt + sha256

SHA-256

Secure Hash Algorithm 256-bit

해시 함수

단방향성

복호화 불가능

레인보우 테이블

입력 값과 해시값을 저장한 거대한 테이블.

해시값을 알면, 입력 값을 알 수 있게 됨.

그래서 1:1 매칭이 불가능하게끔 솔트를 추가한다.

레인보우 테이블은 암호 해독에 사용되는 데이터베이스로, 해시 함수의 출력 값과 해당 출력 값을 생성하는 입력 값을 미리 계산하여 저장한 테이블입니다. 이 테이블은 비밀번호 같은 데이터를 암호화된 형태(해시)에서 원래의 형태로 되돌리는 데 사용됩니다. 해시 함수는 일방향 함수로, 원래 데이터를 암호화하지만, 레인보우 테이블을 사용하면 이러한 암호화를 역으로 추적하여 원래 데이터를 찾아낼 수 있습니다. 보안 전문가들은 레인보우 테이블에 대응하기 위해 솔트(salt)라는 무작위 데이터를 추가하여 해시 값을 더 복잡하게 만드는 방법을 사용합니다.

Salt

암호화할 때 추가되는 랜덤한 데이터 조각

솔트 + 비밀번호 → 해시