도구
가이드

해시 계산기

암호

Web Crypto로 SHA-1/256/384/512 및 MD5를 계산합니다. Hex 또는 Base64 출력.

100% 클라이언트 백엔드 없음
입력
출력
해시를 계산할 텍스트를 입력하세요.
이 페이지에서

해시란?#

암호학적 해시는 임의의 바이트에 대한 단방향 지문입니다. 어떤 길이의 메시지를 넣으면 고정 길이 다이제스트를 돌려주며, 이 다이제스트는 해당 입력에만 어울리는 서명처럼 동작합니다. 비트 하나만 바꿔도 출력이 완전히 바뀝니다. 해시는 두 가지 실질적 질문에 한꺼번에 답합니다. “이 데이터가 바뀌었는가?”와 “이 데이터를 짧고 안정적인 id로 참조할 수 있는가?”. 그래서 파일 무결성 검사, 콘텐츠 주소 지정, 중복 제거, 비밀번호 저장의 기반에 해시가 자리 잡고 있습니다.

이 페이지는 다섯 알고리즘을 계산합니다. SHA-2 패밀리(SHA-256, SHA-384, SHA-512), SHA-1, 그리고 MD5입니다. 네 가지 SHA 변형은 브라우저의 네이티브 Web Crypto 엔진(crypto.subtle.digest)을 통해 실행됩니다. 실제 프로덕션 코드가 쓰는 것과 같은 원시적 기능이지, 자바스크립트 재구현이 아닙니다. MD5는 Web Crypto에 속하지 않으므로, 실제로 선택할 때만 주문형으로 로딩되어 페이지의 초기 다운로드에 끼지 않습니다.

해시는 암호화가 아닙니다. 되돌릴 수 없습니다. 다이제스트에서 입력을 재구성할 수 없습니다. 두 당사자가 키가 있는 다이제스트를 공유해야 한다면 HMAC을 쓰세요. 연산을 되돌려야 한다면 대칭 암호화를 쓰세요.

사용 방법#

  1. 왼쪽 패널에 입력 을 붙여넣으세요. 문자열, JSON 덩어리, 설정 조각 등 텍스트라면 무엇이든 됩니다. 바이트는 해싱 전에 UTF-8로 인코딩됩니다.
  2. 알고리즘 을 고르세요.
    • SHA-256 — 현대적인 기본값. 256비트 다이제스트이며, TLS에서 Git, 블록체인까지 어디나 쓰입니다.
    • SHA-384 / SHA-512 — 같은 패밀리의 더 긴 다이제스트. 규격이 요구할 때 선택하세요.
    • SHA-1 — 160비트. 레거시이며 체크섬으로는 무방하지만, 충돌 저항 서명에는 깨져 있습니다.
    • MD5 — 128비트. 빠르고 어디에나 있지만 암호학적으로는 깨져 있습니다. 비-보안 체크섬과 레거시 캐시 키에 유용합니다.
  3. 출력 형식 을 고르세요. Hex (소문자, 다이제스트의 일반적 관례) 또는 Base64 (더 간결, 토큰에서 흔함).
  4. 예제 를 눌러 표준 테스트 문자열을 불러오거나, 지우기 로 다시 시작하세요. 다이제스트는 오른쪽 패널에 실시간으로 갱신되며, 복사 로 가져갑니다.

주요 기능#

  • 네이티브 Web Crypto. SHA-1/256/384/512는 crypto.subtle.digest 로 계산됩니다. 브라우저의 감사받은 구현이지, 서드파티 라이브러리가 아닙니다.
  • 지연 로딩 MD5. MD5 구현은 선택할 때만 불러와지므로, 첫 렌더링을 절대 무겁게 하지 않습니다.
  • Hex 또는 Base64. 다시 타이핑 없이 한 번의 클릭으로 전환합니다.
  • 실시간 상태 줄. 알고리즘과 다이제스트 바이트 길이를 확인해 주므로, 잘리거나 하나 빠진 결과가 즉시 드러납니다.
  • 업로드 없음. 해싱은 전적으로 브라우저에서 일어납니다. 입력은 결코 서버에 닿지 않습니다.

실전 예시#

정준 참조 문자열은 The quick brown fox jumps over the lazy dog 입니다. 알고리즘을 SHA-256, 출력을 Hex 로 하면 다이제스트는 다음과 같습니다.

d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592

같은 문자열을 SHA-1 (Hex)으로:

2fd4e1c67a2d28fced849ee1bb76e7391b93eb12

유용한 경계 사례는 빈 문자열입니다. 아무것도 해싱하지 않아도 여전히 잘 정의된 비-빈 다이제스트가 나옵니다. SHA-256의 경우 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 이고, MD5의 경우 d41d8cd98f00b204e9800998ecf8427e 입니다. 이 빈 입력 벡터는 이 도구 자체의 테스트 스위트가 올바름을 검증하는 방식이기도 합니다. 여러분의 출력이 다르다면 페이지가 변조된 것입니다.

FAQ#

SHA-256과 MD5 중 어느 것을 골라야 하나요?#

보안과 닿는 모든 것에는 SHA-256을 쓰세요. 비밀번호 솔트 체계, 서명된 URL, 무결성 증명, 충돌 공격에 저항해야 하는 콘텐츠 id가 그런 부류입니다. MD5는 누구도 충돌을 위조하려 하지 않는 비-적대적 체크섬(빠른 “이 파일이 바뀌었나?” 확인, 캐시 키)에만 허용됩니다. 확신이 서지 않으면 SHA-256이 기본값입니다.

같은 입력이 항상 같은 다이제스트를 주는 이유는?#

해싱은 결정론적입니다. 이 층에는 (bcrypt와 달리) 무작위 솔트가 끼어들지 않습니다. 그 결정론이야말로 콘텐츠 주소 지정의 핵심입니다. 같은 바이트는 항상 같은 지문을 내야 합니다. 반대로 말하면, 같은 비밀을 해싱한 두 사람은 같은 다이제스트를 얻습니다. 그래서 순수 해시는 비밀번호 저장에 끔찍한 방식입니다.

해시에서 원본을 복구할 수 있나요?#

아니요. 암호학적 해시는 설계상 단방향 함수입니다. 키도 없고, 역연산도 없습니다. “SHA-256을 복호화한다”는 말은 범주 오류입니다. 유일한 공격은 무차별 대입(맞을 때까지 입력을 시도)이며, 이것이야말로 솔트 없이 해싱된 약한 비밀번호가 위험한 이유입니다.

제 MD5가 평소 쓰던 도구와 다릅니다. 왜 그런가요?#

거의 항상 바이트 표현의 불일치입니다. 뒤에 붙은 줄바꿈, 다른 줄 끝(CRLF vs LF), 또는 다른 도구가 UTF-16 표현을 해싱한 반면 이 페이지는 UTF-8을 해싱하는 경우가 그것입니다. 화면의 텍스트가 아니라 원시 바이트를 비교하세요.