RevealTheme logo

해시 생성기 (MD5 / SHA)

암호화 해시를 생성합니다: MD5, SHA-1, SHA-256, SHA-384, SHA-512. Web Crypto API를 통해 브라우저에서 실행됩니다.

이 도구 사용 방법

  1. 1

    Type or paste the text you want to hash into the input box.

  2. 2

    Click Generate to compute the digests.

  3. 3

    Read the SHA-1, SHA-256, SHA-384, and SHA-512 results, each shown as a lowercase hexadecimal string.

  4. 4

    Select a hash and copy it for use as a checksum, cache key, or content identifier.

암호화 해시란 무엇이며 언제 필요한가요?

암호화 해시 함수는 어떤 입력(몇 바이트, 수 기가바이트의 파일, 또는 영어 위키백과 전체)이든 '다이제스트(digest)' 또는 '해시'라고 불리는 고정 크기의 출력으로 변환하는 결정론적 알고리즘입니다. SHA-256은 256비트(16진수 64자)를 생성하고, SHA-512는 512비트를, MD5는 128비트를 생성합니다. 네 가지 속성이 '암호화' 해시를 (CRC32 같은) 비암호화 해시와 구별합니다. 결정성(같은 입력 → 항상 같은 해시), 눈사태 효과(단 한 비트만 바꿔도 출력 비트의 약 절반이 바뀜), 역상 저항성(해시를 거꾸로 돌려 입력을 복원할 수 없음), 충돌 저항성(같은 해시를 생성하는 두 입력을 찾을 수 없음)입니다. 해시 함수가 깨질 때는 보통 이 마지막 두 속성이 무너집니다. MD5(2004)와 SHA-1(2017)에 대한 충돌 공격으로 인해 이들은 보안 목적에 부적합해졌지만, 파일 체크섬과 같은 비적대적 무결성 검사에는 여전히 사용할 수 있습니다. 새로운 보안 작업에는 SHA-256 또는 SHA-512를 사용하세요. 이 도구는 최신 기기에서 하드웨어 가속되는 브라우저의 Web Crypto API(crypto.subtle.digest)를 사용하며, OpenSSL, Python의 hashlib 모듈, Node의 crypto 모듈과 바이트 단위로 동일한 출력을 생성합니다.

일반적인 사용 사례

  • 다운로드한 파일이 게시자가 공개한 SHA-256과 일치하는지 검증하세요(Linux ISO, 보안 도구 릴리스).

  • 캐시 키를 위한 콘텐츠 주소화 가능 식별자를 생성하세요(콘텐츠 해시 → 안정적인 URL).

  • 파일 저장을 위한 중복 제거 키를 만드세요(동일한 해시 = 동일한 파일).

  • 웹훅 서명 검증을 구현하세요: 공유 비밀로 페이로드의 HMAC-SHA256을 계산합니다.

  • Git 스타일의 콘텐츠 해시를 생성하세요(트리/블롭 식별자를 위한 SHA-1).

  • 키 열의 해시를 계산하여 저장함으로써 데이터베이스 행의 무결성을 검증하세요.

자주 묻는 질문

왜 MD5는 보안 용도로 더 이상 사용되지 않나요?
암호학자들은 같은 MD5를 생성하는 두 개의 서로 다른 입력을 구성하는 방법을 찾아냈습니다. 충돌을 찾아낼 수 있게 되면, MD5는 적대적 시나리오에서 더 이상 신뢰할 수 있는 무결성 신호가 되지 못합니다(누군가 파일을 바꿔치기하고 같은 해시를 가진 다른 파일을 만들어낼 수 있습니다). 비적대적 체크섬(파일이 올바르게 다운로드되었는가?)에는 MD5가 여전히 잘 작동합니다. 디지털 서명이나 공격자의 영향을 받는 모든 경우에만 안전하지 않습니다.
해시를 거꾸로 되돌릴 수 있나요?
직접적으로는 불가능합니다. 암호화 해시는 단방향 함수입니다. 그러나 (1) 짧거나 엔트로피가 낮은 입력(비밀번호, 흔한 문구)의 경우, 공격자는 가능한 모든 입력의 해시를 미리 계산하여(레인보우 테이블) 귀하의 해시를 찾아낼 수 있습니다. 그래서 비밀번호 해싱에는 고유한 무작위 솔트를 사용합니다. (2) 임의 길이이고 엔트로피가 높은 입력(무작위 키, 파일 콘텐츠)의 경우, 역산은 계산상 실행 불가능합니다.
SHA-256과 HMAC-SHA256의 차이는 무엇인가요?
SHA-256은 단순 해시입니다. 입력을 가진 사람이라면 누구나 같은 해시를 계산할 수 있습니다. HMAC-SHA256은 키가 있는 해시입니다. 계산하려면 공유 비밀이 필요합니다. 웹훅은 HMAC을 사용하는데, 검증자가 단순히 '페이로드가 알려진 값과 일치하는가?'가 아니라 '이것을 비밀을 아는 누군가가 만들었는가?'를 알고 싶어 하기 때문입니다. 키가 있는 변형에는 저희의 HMAC 생성기를 사용하세요.
언제 SHA-256 대신 SHA-512를 사용해야 하나요?
SHA-512는 출력 비트가 더 많아(512 대 256) 이론상 충돌 공격을 더 어렵게 만듭니다. 하지만 SHA-256은 이미 어떤 합리적인 기간을 넘어서까지 안전합니다(충돌에 대한 유효 강도 2^128). SHA-512는 내부 연산이 더 넓기 때문에 64비트 하드웨어에서 때때로 더 빠릅니다. 기본적으로는 SHA-256을 사용하고, 구체적인 이유가 있을 때 SHA-512를 사용하세요.
왜 제 SHA 해시가 다른 도구의 결과와 다른가요?
세 가지 원인이 유력합니다. (1) 다른 입력 인코딩: 해시가 적용되는 바이트가 일치해야 합니다. UTF-8, UTF-16 또는 Latin-1은 같은 가시 텍스트에 대해 서로 다른 해시를 생성합니다. 이 도구는 입력을 UTF-8로 인코딩합니다. (2) 끝의 줄 바꿈: 일부 도구는 줄 바꿈을 추가하고 일부는 추가하지 않습니다. (3) BOM(바이트 순서 표시): 일부 편집기가 UTF-8 파일에 추가하는 숨겨진 3바이트 접두사입니다.
민감한 데이터에 사용해도 안전한가요?
예. 해시 계산은 Web Crypto를 통해 귀하의 브라우저에서 로컬로 이루어집니다. 입력은 결코 기기를 벗어나지 않습니다. 해시 자체는 (충분한 엔트로피가 있다고 가정할 때) 입력을 드러내지 않는다는 의미에서 '민감'하지 않지만, 엔트로피가 낮은 데이터(솔트가 없는 비밀번호 등)의 해시를 계산하는 경우, 해시를 보는 누구든 레인보우 테이블을 통해 그것을 역산할 수 있다는 점에 유의하세요.

관련 도구