325Tools

SHA-256 해시란 무엇인가 (그리고 언제 쓰나)?

325Tools 팀 · 업데이트 2026-06-16

SHA-256 해시는 어떤 데이터든 그 데이터의 64자리 16진수 지문입니다. 한 단어를 넣든 2기가바이트 파일을 넣든, 매번 똑같은 고정된 64자리 16진수 문자열이 나옵니다. 입력을 1바이트만 바꿔도 전체 출력이 예측 불가능하게 완전히 달라집니다. 바로 이 속성들의 조합이 해싱을 유용하게 만듭니다.

중요한 세 가지 속성

  • 단방향. 데이터로부터 해시는 계산할 수 있지만, 해시를 데이터로 되돌릴 수는 없습니다. 해시는 지문이지 암호화된 사본이 아닙니다.
  • 결정적. 같은 입력은 항상 같은 출력을 내므로, 두 사람이 각자 파일을 해싱해 결과를 비교할 수 있습니다.
  • 고정 길이. SHA-256은 입력이 아무리 크거나 작아도 항상 256비트 — 64자리 16진수 — 를 출력합니다.

해시 생성기로 직접 해 보세요: 아무 텍스트나 붙여 넣고 64자로 압축되는 모습을 확인하세요.

SHA-256이 진짜로 잘하는 일

가장 대표적인 용도는 무결성 검사입니다. 소프트웨어 다운로드는 흔히 파일 옆에 SHA-256 "체크섬"을 공개합니다. 내려받은 뒤 해시 생성기로 사본을 해싱해 공개된 값과 비교하세요. 일치하면 파일이 변조 없이 온전히 도착한 것이고, 아니라면 전송 중 무언가 바뀐 것입니다. 해시는 중복 제거(동일한 파일은 같은 해시를 공유합니다)와 변경 감지(파일의 해시로 수정 여부를 즉시 알 수 있습니다)에도 쓰입니다.

흔한 실수

  • 비밀번호를 그냥 SHA-256 해시로 저장하기. SHA-256은 빠른데, 이는 비밀번호에는 정확히 잘못된 특성입니다 — 공격자가 초당 수십억 번씩 추측을 시도할 수 있기 때문입니다. 실제 비밀번호 저장에는 bcrypt, scrypt, Argon2처럼 느리고 솔트를 적용하는 키 유도 함수가 필요합니다. 그냥 강력한 비밀번호가 필요하다면, 해싱 방식을 직접 고안하지 말고 비밀번호 생성기로 하나 만드세요.
  • 보안 목적으로 MD5 사용하기. MD5(그리고 SHA-1)는 보안이 민감한 어떤 용도에도 깨졌습니다; 의도적인 충돌이 이미 시연되었습니다. 결과를 신뢰해야 한다면 SHA-256을 쓰세요.
  • 해싱과 암호화 혼동하기. 해싱은 단방향이며 키가 없습니다; 해시를 "복호화"해 입력을 복원하는 일은 결코 불가능합니다. 암호화는 양방향이며 키로 되돌릴 수 있습니다. 둘은 서로 다른 문제를 풉니다.
  • 해싱과 인코딩 혼동하기. base64(Base64 인코더/디코더 참고)는 데이터를 되돌릴 수 있게 다시 표현할 뿐 — 아무것도 숨기지 않습니다. 해시는 실제로 정보를 버립니다.

검증 용도로 쓰면 SHA-256은 단순하고 믿음직합니다. 다만 되돌릴 수 있는 비밀 유지나 느린 비밀번호 저장처럼, 애초에 설계되지 않은 일을 시키지만 마세요.

이 가이드에서 사용한 도구