해시 생성기

텍스트에서 MD5, SHA-1, SHA-256, SHA-512 해시를 생성합니다. 모든 처리는 브라우저 안에서만 이루어집니다.

Loading…

모든 처리는 브라우저 내부에서 실행됩니다 — 파일·입력은 서버로 전송되지 않습니다.

사용법

상단 패널에 텍스트를 입력하거나 붙여 넣으면 MD5·SHA-1·SHA-256·SHA-512 네 가지 해시가 각각 복사 버튼과 함께 즉시 표시됩니다. "uppercase output" 토글은 16진수의 대·소문자를 전환합니다. 체크섬 파일이 어느 표기를 쓰는지에 따라 대조할 때 필요합니다.

입력은 해시 계산 전에 UTF-8로 인코딩되므로 언어·에디터·플랫폼이 달라도 같은 텍스트면 같은 해시가 나옵니다. 단 BOM이나 끝줄바꿈이 섞이지 않은 것이 전제입니다. SHA계열은 Web Crypto를 사용하고, MD5는 브라우저가 제공하지 않아 인라인으로 계산합니다. 모든 처리는 브라우저 안에서 끝납니다.

예제

빈 문자열의 해시

출력
MD5      d41d8cd98f00b204e9800998ecf8427e
SHA-1    da39a3ee5e6b4b0d3255bfef95601890afd80709
SHA-256  e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
SHA-512  cf83e1357eefb8bd…(128 chars)

이 상수들은 외워 두면 유용합니다. 코드가 실수로 빈 버퍼를 해싱해 버린 경우 로그에서 바로 알아챌 수 있습니다.

다운로드한 파일(텍스트 본문) 대조

입력
The quick brown fox jumps over the lazy dog
출력
SHA-256  d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592

바이너리 파일은 로컬에서 shasum -a 256 file(macOS / Linux) 또는 Get-FileHash file -Algorithm SHA256(PowerShell)로 체크섬을 계산해 대조하세요. 이 도구는 텍스트만 다룹니다.

애벌란치 효과 확인

입력
hello
출력
hello   → SHA-256 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
hellO   → SHA-256 fd66d4c87b3df9408a4d6ab27a25aaba53d3f9697f9e1bf2eb0067be4f01f17a

입력 1비트만 바꿔도 출력 전체가 크게 흐트러집니다. 암호학적 해시의 정의적 성질입니다.

자주 묻는 질문

MD5나 SHA-1로 비밀번호를 저장해도 되나요?

아니요. MD5와 SHA-1은 모두 빠른 설계이고 충돌 공격에도 깨졌습니다. 최신 GPU장비는 초당 수십억 번 시도가 가능합니다. 비밀번호에는 bcrypt·scrypt·Argon2 같은 비밀번호 해시 함수를 사용자별 솔트와 함께 사용하세요. 범용 해시는 무결성 체크용이며 인증 정보에는 부적합합니다.

이 도구로 파일도 해싱할 수 있나요?

직접은 안 됩니다. 입력은 텍스트만 받습니다. 바이너리 파일은 shasum·sha256sum·certutil·Get-FileHash 같은 로컬 도구로 해싱하세요. 작은 텍스트 파일은 내용을 붙여 넣어 계산할 수 있지만, 클립보드를 거치면 줄바꿈 문자나 공백이 바뀌어 해시가 달라지는 경우가 잦습니다.

README에 적힌 해시와 결과가 다른 이유는?

입력에 보이지 않는 차이가 있는 경우가 가장 흔합니다. 끝줄바꿈, 맨 앞의 BOM, CRLF와 LF 줄바꿈 차이, 인코딩 불일치 같은 것들입니다. 공백을 제거하고 줄바꿈을 LF로 통일하고 BOM을 빼고 다시 시도하세요. 1바이트만 달라도 해시 전체가 바뀝니다.

해시는 암호화와 같은 건가요?

아니요. 해시는 단방향입니다. 해시값에서 입력을 복원할 수 없습니다. 암호화는 올바른 키가 있으면 복호화됩니다. 해시는 "두 데이터가 동일한가"를 판정하는 용도(체크섬·서명·중복 제거)이고, 암호화는 "키 없는 사람에게는 내용을 숨기는" 용도입니다.

새 코드에서는 어떤 알고리즘을 써야 하나요?

일반적인 무결성 체크(체크섬·콘텐츠 어드레싱·서명 입력)에는 SHA-256이 무난한 기본값입니다. 더 긴 다이제스트가 필요하면 SHA-512, 최대 속도가 필요하면 BLAKE3(이 도구에는 없지만 알아 둘 가치가 있음)를 쓰세요. MD5와 SHA-1은 레거시 프로토콜 재현이 아니면 피하세요.

관련 개념

암호학적 해시 함수는 임의의 입력을 고정 길이 다이제스트로 변환하며 세 가지 핵심 성질을 만족합니다. 원상 저항성(다이제스트에서 입력 복원 불가), 제2원상 저항성(같은 다이제스트를 갖는 다른 입력 구성 불가), 충돌 저항성(같은 다이제스트를 갖는 임의의 입력 쌍 발견 불가). 이 셋이 모두 성립할 때 다이제스트는 쓸 만한 지문이 됩니다.

MD5(128비트)와 SHA-1(160비트)은 충돌 저항성이 무너진 지 오래이며 실제 충돌 사례가 공개되어 있습니다. 보안 용도로 쓰지 말고 파일 중복 제거나 캐시 키 같은 비보안 용도에만 한정하세요. 무결성 확인에는 SHA-2(SHA-256·SHA-512)가 현역입니다. 이들 모두 비밀번호 저장에는 부적합합니다. 빠른 설계이기 때문에, 공격자가 해시를 손에 넣으면 평범한 하드웨어에서도 초당 수십억 번 무차별 대입이 가능합니다. 비밀번호 해시(bcrypt·scrypt·Argon2)는 솔트·메모리 비용·조정 가능한 반복 횟수를 더해 의도적으로 느리게 만듭니다.

관련 글

관련 도구