## SHA-256 알고리즘단방향 암호화(해시) ### SHA-256의 핵심 특징 - 단방향 - 역으로 원본을 복호화 할 수 없음 - 고정크기 - 입력 크기에 상관없이 출력은 항상 256비트 - 충돌회피 - 서로 다른 입력이 같은 해시값을 가질 확률이 낮음 - ex) 비밀번호 암호화, 디지털 서명 / 무결성 검증, 토큰 생성 ### 보안 이슈 해결 - Salt - 해시 처리 전에 비밀번호에 추가하는 ‘랜덤 문자열’ - 같은 비밀번호라도 다른 해시값을 만들기 위해 사용 - DB에 저장 - UUDI나 SecureRandom 등으로 랜 생성 ```java String salt = generateRandomSalt(); ``` - Pepper - 해시 처리 전에 비밀번호에 더하는 비밀 문자열 - Salt와 비슷하지만 공개하지 않고, 서버 내에서만 비밀로 보관 - 보통 소스 코드나 서버 환경변수에 저장 ```java String pepper = System.getenv("PEPPER_SECRET"); ```
SHA-256 알고리즘단방향 암호화(해시)
SHA-256의 핵심 특징
보안 이슈 해결
Salt
Pepper