Skip to content

SHA-256 암호화 #4

Description

@dev-xong

SHA-256 알고리즘단방향 암호화(해시)

SHA-256의 핵심 특징

  • 단방향
    • 역으로 원본을 복호화 할 수 없음
  • 고정크기
    • 입력 크기에 상관없이 출력은 항상 256비트
  • 충돌회피
    • 서로 다른 입력이 같은 해시값을 가질 확률이 낮음
  • ex) 비밀번호 암호화, 디지털 서명 / 무결성 검증, 토큰 생성

보안 이슈 해결

  • Salt

    • 해시 처리 전에 비밀번호에 추가하는 ‘랜덤 문자열’
    • 같은 비밀번호라도 다른 해시값을 만들기 위해 사용
    • DB에 저장
    • UUDI나 SecureRandom 등으로 랜 생성
    String salt = generateRandomSalt();
  • Pepper

    • 해시 처리 전에 비밀번호에 더하는 비밀 문자열
    • Salt와 비슷하지만 공개하지 않고, 서버 내에서만 비밀로 보관
    • 보통 소스 코드나 서버 환경변수에 저장
    String pepper = System.getenv("PEPPER_SECRET");

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status
    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions