해시 생성기 — MD5, SHA-1, SHA-256, SHA-512, CRC32, HMAC

텍스트나 파일을 MD5, SHA-1, SHA-256, SHA-384, SHA-512, CRC32로 해시하고, 체크섬을 검증하거나 HMAC을 계산하세요. 파일은 기기 밖으로 나가지 않습니다.

43바이트. 줄바꿈과 끝 공백도 포함됩니다. "해시가 틀리다"는 문의 대부분은 보이지 않는 줄바꿈 때문입니다.
알고리즘
MD5…
SHA-1…
SHA-256…
SHA-512…
CRC32…
대소문자, 공백, 콜론은 무시됩니다. sha256sum 출력 한 줄 전체("hash filename")도 사용할 수 있습니다.

텍스트와 파일은 브라우저에서 해시됩니다. 파일은 디스크에서 조각 단위로 읽으며 업로드되지 않습니다. 모든 무료 도구 보기.

문제를 발견하셨거나 개선할 점이 있나요? 모든 메시지를 읽고 빠르게 고칩니다.

이 해시 생성기는 텍스트나 파일의 MD5, SHA-1, SHA-256, SHA-384, SHA-512, CRC32 체크섬을 브라우저에서 한 번에 계산합니다. 다운로드한 파일이 배포처 사이트의 체크섬과 일치하는지 확인하거나, 잠금 파일이나 Subresource Integrity 속성에 쓸 SHA-256을 구하거나, 웹훅을 디버깅하면서 HMAC 서명을 계산할 때 사용하세요. 텍스트는 sha256sum, OpenSSL, 모든 프로그래밍 언어의 표준 라이브러리와 마찬가지로 UTF-8 바이트로 해시합니다. 여러 파일을 한 번에 끌어다 놓으면 모든 파일의 체크섬 표와 sha256sum -c로 검증할 수 있는 sha256sum 호환 파일을 얻을 수 있고, "줄마다 따로 해시"를 체크하면 문자열 목록 전체를 한 번에 해시할 수 있습니다.

파일은 디스크에서 4 MB씩 잘라 읽어 스트리밍 해시 함수에 넣으므로, 수 기가바이트짜리 ISO도 메모리에 올리지 않고 단 1바이트도 업로드하지 않은 채 확인합니다. 진행률이 표시되며 취소할 수 있습니다. 솔직한 한계도 하나 있습니다. 브라우저 탭에서의 해시는 네이티브 도구보다 느리므로, 50 GB 디스크 이미지라면 명령줄의 sha256sum이나 certutil이 더 빠릅니다.

사용 방법

  1. 위에서 텍스트, 파일, HMAC 중 하나를 고르세요.
  2. 텍스트는 입력하거나 붙여 넣으면 입력하는 대로 해시가 업데이트됩니다. 파일은 상자에 끌어다 놓거나 클릭해서 선택하세요.
  3. 큰 파일을 해시하기 전에 필요 없는 알고리즘은 체크를 해제하세요. 알고리즘마다 시간이 더 걸립니다.
  4. 배포처의 체크섬을 "예상 체크섬과 비교"에 붙여 넣으면 일치 또는 불일치가 분명하게 표시됩니다.
  5. 비교하려는 시스템이 Base64나 16진수 대문자를 쓴다면 출력을 그 형식으로 바꾼 뒤 복사하세요.
  6. 파일이 여러 개라면 함께 선택하거나 끌어다 놓으세요. 하나씩 차례로 해시되며, 모든 체크섬을 sha256sum 형식의 .txt나 CSV로 다운로드할 수 있습니다.

자주 묻는 질문

여러 파일의 체크섬을 한 번에 구할 수 있나요?

네. 파일 탭에서 파일을 최대 500개까지 함께 선택하거나 끌어다 놓으세요. 체크한 알고리즘으로 하나씩 차례로 해시되며, 각 파일을 4 MB 단위로 읽으므로 메모리 사용량이 낮게 유지되고, 읽을 수 없는 파일은 실패로 표시될 뿐 나머지 작업을 멈추지 않습니다. 결과는 GNU coreutils 형식의 .txt(sha256sum, md5sum, sha512sum 출력과 같은 형식이라 sha256sum -c로 검증 가능)나 모든 알고리즘이 담긴 CSV로 다운로드하세요. 기존 SHA256SUMS 목록을 붙여 넣어 각 파일을 대조할 수도 있습니다.

한 줄에 하나씩 문자열 목록을 해시할 수 있나요?

네. 텍스트 탭에서 "줄마다 따로 해시"를 체크하세요. 각 줄을 줄바꿈 없이 UTF-8로 따로 해시하며 최대 5,000줄까지 가능합니다. 표는 탭으로 구분된 텍스트로 복사하거나 CSV로 다운로드할 수 있습니다.

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

출력 크기와 보안 수준이 다른 해시 함수입니다. MD5는 128비트, SHA-1은 160비트를 출력하며, 둘 다 보안 용도로는 깨졌습니다. 연구자들이 같은 해시를 갖는 서로 다른 두 입력을 만들 수 있기 때문입니다(MD5는 2004년부터, SHA-1은 2017년 SHAttered 공격으로 공개적으로). SHA-256은 256비트를 출력하며 알려진 실용적인 공격이 없습니다. 보안과 관련된 일에는 SHA-256이나 SHA-512를 쓰세요. MD5와 SHA-1은 우발적인 손상을 찾아내는 용도로는 여전히 괜찮습니다.

파일의 체크섬은 어떻게 검증하나요?

파일 탭을 열고 다운로드한 파일을 끌어다 놓은 다음, 다운로드 페이지의 체크섬을 비교 입력란에 붙여 넣으세요. 일치하면 가지고 있는 파일이 배포처가 해시한 파일과 바이트 단위까지 같다는 뜻입니다. 같은 종류끼리 비교하는지 확인하세요. SHA-256 체크섬은 16진수 64자, SHA-1은 40자, MD5는 32자입니다. 확실하게 하려면 파일과 같은 미러가 아니라 공식 사이트에서 HTTPS로 체크섬을 받으세요.

해시를 되돌리거나 복호화할 수 있나요?

아니요. 해시는 단방향 함수로, 키도 없고 복호화할 것도 없습니다. "MD5 복호화" 사이트가 실제로 하는 일은 흔한 문자열을 미리 해시해 둔 표에서 해시를 찾아보는 것입니다. 그래서 짧거나 흔한 비밀번호의 해시는 쉽게 찾을 수 있으며, 비밀번호는 일반 SHA-256이 아니라 bcrypt나 Argon2처럼 느리고 솔트를 쓰는 알고리즘으로 저장해야 합니다.

내 코드에서 나온 해시와 일치하지 않는 이유는 무엇인가요?

입력 바이트가 다르기 때문이며, 대개 눈에 보이지 않는 차이입니다. 흔한 원인은 끝의 줄바꿈(echo가 하나를 추가하므로 echo -n 사용), LF 대신 Windows CRLF 줄 끝, UTF-8이 아닌 다른 텍스트 인코딩, 앞뒤 공백, 16진수 다이제스트와 Base64 다이제스트의 비교입니다. 해시는 1바이트만 달라도 완전히 바뀌므로 텍스트 상자 아래에 표시되는 바이트 수를 확인하세요.

HMAC은 무엇이고 언제 필요한가요?

HMAC(RFC 2104)은 비밀 키와 해시 함수를 결합해 키를 가진 사람만 만들 수 있는 서명을 생성합니다. Stripe, GitHub, Shopify 같은 웹훅 제공자는 페이로드에 HMAC-SHA256으로 서명하므로, 요청이 정말 그들에게서 왔는지 검증할 수 있습니다. sha256(key + message)처럼 직접 만들지 마세요. SHA-256에서 이런 구성은 길이 확장 공격에 취약하며, HMAC은 바로 이를 막기 위해 설계되었습니다.

CRC32는 해시인가요?

암호학적 해시가 아니라 체크섬입니다. CRC32는 매우 빠르고 전송 중 비트가 뒤집히는 것 같은 우발적인 오류를 잘 잡아내서 ZIP, gzip, PNG, 이더넷에서 쓰입니다. 의도적으로 위조하기는 아주 쉬우므로 파일이 변조되지 않았음을 증명하는 데는 절대 쓰지 마세요.

용도별 해시 선택

• 배포처의 체크섬으로 다운로드 검증: 배포처가 공개한 알고리즘, 보통 SHA-256.

• 보안과 관련된 무결성 확인(Subresource Integrity, 패키지 잠금 파일, 코드 서명, 인증서): SHA-256 또는 SHA-384. SRI 속성은 Base64를 쓰며, 그래서 출력 전환 기능이 있습니다.

• 공유 비밀로 API 요청이나 웹훅 서명: HMAC-SHA256.

• 비밀번호 저장: 이 중 어느 것도 아닙니다. 일부러 느리게 만들고 솔트를 쓰는 bcrypt, scrypt, Argon2id를 사용하세요. 빠른 해시는 공격자가 GPU로 초당 수십억 번 추측해 볼 수 있게 해 줍니다.

• 중복 제거, 캐시 키, ETag, 우발적 손상 감지: 아무도 충돌을 위조하려 하지 않으므로 MD5, SHA-1, CRC32로 충분하고 빠릅니다.

여기서 대용량 파일을 해시하는 방식

브라우저에 내장된 WebCrypto API는 메모리에 한꺼번에 올라와 있는 버퍼만 해시할 수 있습니다. 텍스트라면 문제없으며 이 도구도 텍스트에는 이를 사용합니다. 하지만 4 GB 파일이라면 탭에 4 GB를 읽어 들여야 하므로 대부분의 기기에서 실패하거나 멈춥니다.

그래서 파일은 SHA-1, SHA-256, SHA-384, SHA-512, CRC32의 스트리밍 구현(MD5는 spark-md5)을 거치며, 이들은 File.slice로 디스크에서 직접 읽은 조각을 4 MB씩 처리합니다. 파일 크기와 관계없이 메모리 사용량은 일정합니다. 구현은 경계 길이와 무작위 데이터에 대해 Node의 OpenSSL 기반 crypto 모듈과 바이트 단위로 대조 테스트했습니다.

최신 노트북에서 MD5, SHA-1, SHA-256은 대략 초당 150–250 MB, SHA-384와 SHA-512는 그 3분의 1 정도입니다. 후자의 64비트 연산을 JavaScript가 32비트 조각으로 흉내 내야 하기 때문입니다. 선택한 모든 알고리즘이 파일을 한 번 읽는 과정을 공유하므로, 필요 없는 알고리즘의 체크를 해제하는 것이 속도를 높이는 가장 쉬운 방법입니다.

체크섬 파일 읽기

Linux 배포판과 오픈 소스 프로젝트는 SHA256SUMS 같은 파일을 공개합니다. 각 줄은 16진수 다이제스트, 공백 두 칸, 파일 이름으로 이루어지며 sha256sum이 출력하는 형식입니다. macOS의 shasum도 같은 형식을 쓰고, BSD 스타일 도구는 대신 SHA256 (file.iso) = digest 형식으로 씁니다.

두 형식 모두 비교 입력란에 붙여 넣을 수 있습니다. 도구가 다이제스트만 꺼내고 나머지는 대소문자, 공백, 콜론과 함께 무시합니다. 프로젝트가 서명 파일(SHA256SUMS.gpg 또는 .sig)도 공개한다면, 프로젝트 키로 그 서명을 검증해야 체크섬 목록 자체가 바꿔치기되지 않았음을 증명할 수 있습니다.

관련 무료 도구

  • Bcrypt 생성기 — 원하는 cost로 비밀번호를 bcrypt 해시하고, 비밀번호가 bcrypt 해시와 일치하는지 확인하고, 해시의 각 부분이 무엇을 뜻하는지 알아보세요.
  • Base64 인코더 / 디코더 — 텍스트나 파일을 Base64로 인코딩하고, 이미지를 CSS·<img> 코드와 함께 data URI로 바꾸고, Base64를 미리보기 가능한 파일로 디코딩하세요. 어떤 데이터도 브라우저 밖으로 나가지 않습니다.
  • 비밀번호 생성기 — 강력한 무작위 비밀번호, 기억하기 쉬운 패스프레이즈, PIN을 생성하세요. 모든 처리가 브라우저에서 이루어지며 아무것도 전송되거나 저장되지 않습니다.
  • TOTP 생성기 — Base32 시크릿을 카운트다운과 함께 실시간 2FA 코드로 바꾸고, 인증 앱용 otpauth:// QR 코드를 만들거나 기존 URI를 읽으세요.