pw hashing && Salt
비밀번호 해싱 및 Salt
1. 개요
2. 왜 Salt가 필요한가?
2.1. 해싱만으로는 부족
password -> SHA256 -> 5e884898da28047151d0e56f8dc6292773603d0d…2.2. Salt로 레인보우 테이블 무력화
salt = "OJrT9vLm" // 무작위
password = "password"
hashed = SHA256("password"+"OJrT9vLm") = ...3. 해싱 알고리즘 선택
3.1. 단순 해시(SHA256, SHA512) 문제점
3.2. BCrypt, Argon2, PBKDF2
BCrypt
Argon2
PBKDF2
4. Salt를 어떻게 DB에 저장하나?
4.1. 해싱 함수가 자동으로 관리
4.2. 수동 관리
5. Java 예시: BCrypt 사용
5.1. 비밀번호 해싱
5.2. 비밀번호 검증
6. 테이블 스키마 예시
7. 회원가입/로그인 로직
7.1. 회원가입 (Register)
7.2. 로그인 (Login)
8. 비밀번호 변경 & 리셋(Reset) 로직
8.1. 비밀번호 변경(Authenticated)
8.2. 비밀번호 재설정(비로그인/분실)
Last updated