현재 언어: 한국어 영어로 보기

파일 해시 계산기

어떤 파일이든 MD5, SHA-1, SHA-256, SHA-512 해시를 한 번에 계산합니다. 공개된 체크섬과 비교해 다운로드를 검증할 때 유용해요.

파일을 여기에 끌어다 놓으세요 또는
  1. 점선 박스에 파일을 하나 또는 여러 개 끌어다 놓거나 "파일 선택"을 누르세요.
  2. "모두 해시"를 누르면 각 파일의 MD5, SHA-1, SHA-256, SHA-512가 모두 계산돼요.
  3. 개별 행의 해시를 복사하거나, 모든 파일의 SHA-256을 SHA256SUMS 형식으로 한 번에 받을 수 있어요.
  4. 공개된 체크섬을 "검증" 칸에 붙여 넣으면 어느 파일과 일치하는지(혹은 일치하지 않는지) 바로 알려줍니다.
어떤 도구인가요?

파일을 로컬에서 읽어 업계 표준 네 가지 다이제스트(MD5, SHA-1, SHA-256, SHA-512)를 한꺼번에 만들어 줍니다. 새 작업에는 SHA-256을 쓰고, MD5나 SHA-1은 검증 대상 게시자가 아직 이 값들을 제공할 때만 사용하세요. "검증" 칸에는 아무 16진수 문자열을 넣어도 되고, 네 알고리즘 중 어느 것과 일치하는지(혹은 일치하지 않는지) 알려주기 때문에 어떤 알고리즘이 쓰였는지 미리 알 필요가 없어요.

예시

ubuntu-24.04.1-desktop-amd64.iso (6,114,656,256 바이트) 파일을 해시하면 아래 값이 나옵니다:

MD5     e3a5c61d27d541e09ef0e894c514ad54
SHA-1   0bc9a82a4f7fc19f97cefc8a62e5ef10d2d65f80
SHA-256 c2e6f4dbefb08d47d3e3b41e4bcadce9dcebdf3a47f8c08390d6b8b10b35b1ab
SHA-512 bd4a8f30...d14e97c2 (128 hex chars)

Ubuntu의 SHA256SUMS에서 해당 SHA-256 줄을 "검증" 칸에 붙여 넣으면 일치 결과가 보일 거예요.

왜 서버가 공개한 SHA-256 값과 다르게 나오나요?

해시가 일치하지 않는 흔한 원인과 알아 두면 좋은 한계들이에요.

  • 대상 파일 경계가 달라요. archive.zip을 통째로 해시한 경우와, 그 안에 든 파일 하나만 해시한 경우는 결과가 달라요. 게시자는 보통 바깥쪽 아카이브 파일을 해시해 공개합니다.
  • 줄바꿈 문자가 바뀐 경우. Windows의 Git에서 core.autocrlf=true 설정이면 체크아웃 시 \n이 \r\n으로 변환돼 업스트림 해시와 더 이상 일치하지 않아요. core.autocrlf=false로 체크아웃하거나, 원본 blob을 직접 받으세요.
  • Hex와 Base64 혼동. sha256sum은 16진수(hex)로 출력합니다. 일부 S3 ETag나 서명된 매니페스트는 Base64로 되어 있어요. 둘을 섞어 붙여 넣으면 항상 실패합니다.
  • 브라우저 메모리 한계. SHA 계열은 파일을 통째로 ArrayBuffer에 올려 처리하기 때문에, 4 GB 정도의 ISO는 모바일 브라우저에서 메모리 부족으로 실패할 수 있어요. 데스크톱에서 시도하거나, 아주 큰 파일은 커맨드라인에서 sha256sum을 쓰는 편이 안전합니다.
  • 서로 다른 알고리즘을 비교. SHA-256(16진수 64자)과 SHA-1(40자)은 애초에 비교할 수 없어요. 내용을 보기 전에 길이(알고리즘)부터 맞춰 주세요.
  • 붙여 넣을 때 공백/개행 혼입. 16진수 다이제스트를 복사할 때 줄바꿈이 같이 딸려 오면 64자가 아니라 65자가 됩니다. 비교 전에 앞뒤 공백을 정리하세요.
자주 묻는 질문

MD5, SHA-1, SHA-256, SHA-512의 차이는 무엇인가요?

출력 길이와 충돌 저항성이 다릅니다. MD5는 128비트, SHA-1은 160비트, SHA-256은 256비트, SHA-512는 512비트예요. MD5와 SHA-1은 고의적인 충돌 공격에 취약해서 서명이나 비밀번호 저장에는 쓰지 않아야 합니다 — 다만, 실수로 손상된 다운로드를 확인하는 용도로는 여전히 괜찮아요. 새 작업에는 SHA-256이 기본값이고, 더 긴 다이제스트가 필요한 곳엔 SHA-512가 쓰입니다.

왜 서버가 공개한 SHA-256 값과 다르게 나오나요?

보통 세 가지 중 하나예요: 다운로드 중에 파일이 변한 경우(CDN이 트랜스코딩했거나, 백신이 푸터를 붙였거나, Windows의 Git이 줄바꿈을 바꾼 경우), 게시자는 압축 파일을 해시했는데 본인은 푼 파일을 해시한(또는 그 반대) 경우, 그리고 hex를 Base64와 비교하는 경우. 양쪽에서 같은 도구로 다시 계산하고 파일 크기부터 확인해 보세요 — 바이트가 다르면 해시도 당연히 달라집니다.

파일 크기에 제한이 있나요?

도구 자체의 제한이 아니라, 브라우저 메모리가 한계예요. 여기서 SHA 계열은 파일 전체를 ArrayBuffer에 올려 Web Crypto API로 처리하기 때문에 데스크톱에선 대략 수 GB, 폰에선 훨씬 더 작은 크기까지만 안정적으로 동작합니다. MD5는 4 MB 단위로 스트리밍하기 때문에 더 큰 파일도 잘 소화하지만, 전체 흐름은 메모리 바운드예요.

sha256sum이나 PowerShell의 Get-FileHash와 결과가 같나요?

네. Linux/macOS에서 sha256sum file.iso를 돌리거나, PowerShell 5+에서 Get-FileHash -Algorithm SHA256 file.iso를 돌리면 이 도구와 똑같은 소문자 hex 값이 나옵니다. 값이 다르다면 정말로 같은 바이트를 해시하고 있는지부터 확인하세요. PowerShell은 SHA-256이 기본값이고, 다른 알고리즘은 sha1sum / md5sum으로 각각 있어요.

Linux ISO 다운로드 검증용으로 써도 괜찮나요?

네, 정확히 그런 용도로 만들어졌어요. ISO 파일을 넣고 SHA-256 계산이 끝날 때까지 기다린 뒤, 배포판의 체크섬 파일에서 기대값을 "알고 있는 해시와 비교해 검증" 칸에 붙여 넣으면 됩니다. 일치하면 디스크의 바이트가 게시자가 서명한 것과 동일하다는 뜻이에요. 가능하면 체크섬 파일 자체도 GPG 서명으로 한 번 더 검증하세요.

여기서 해시한 파일을 저장하나요?

아니요. 올리신 파일도, 생성된 해시 값도 저장하지 않습니다. 탭을 닫거나 새로고침하는 순간 모두 폐기돼요 — 로그도, 기록도 남지 않습니다. 민감한 파일도 안심하고 넣으시고, 원하시면 브라우저 개발자 도구에서 직접 확인해 보셔도 좋아요.