simVault 블로그 로고 이미지입니다

SHA-1, SHA-256, SHA-3 해시 알고리즘

7/27/2025, 2:51:03 PM (수정: 7/28/2025, 1:54:05 PM)
security

SHA-1

  • 입력 데이터를 고정된 크기의 해시 값으로 변환하는 알고리즘.

  • 해시 길이: 160비트 (20바이트)

  • 출력 형식: 40자리의 16진수 문자열

    # 리눅스에서 SHA-1 해시 생성 echo -n "hello world" | sha1sum # 출력: 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
  • 현재는 보안상 취약점이 밝혀서 더 이상 권장되지 않는 알고리즘.

    • 충돌 공격(collision attack)에 취약함. 즉, 서로 다른 두 입력값이 같은 해시값을 가질 수 있음.

SHA-256

  • SHA-2 계열

  • 구조: Merkle–Damgård 구조

  • 해시 길이: 256비트 (32바이트)

  • 출력 형식: 64자리의 16진수 문자열

    echo -n "hello world" | sha256sum # 출력: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
  • SHA-1 대비 충돌 저항성이 대우 뛰어남

  • 오늘날 가장 널리 사용되는 해시 함수 중 하나

SHA-3

  • 구조: Sponge 구조

  • 해시 길이: 224, 256, 384, 512 비트 등

  • 기존 SHA-2와 완전히 다른 구조, 독립적 보완책

  • SHA-2는 깨진 적이 없지만, 혹시 모를 사태에 대비한 백업 알고리즘