~ / developer / hash-generator

#️⃣ 해시 생성기

텍스트를 입력하거나 파일을 끌어다 놓으면 MD5·SHA-1·SHA-256·SHA-384·SHA-512를 바로 계산해요. 파일은 업로드되지 않고 브라우저 안에서만 읽어요.

input
입력
예시:
options
출력 형식
HMAC
hash
checksum — 기대값과 비교

사용법

  1. 텍스트를 입력하면 입력하는 즉시 다섯 가지 해시가 계산돼요. 한글·이모지는 UTF-8 바이트로 바꿔서 계산하니 리눅스 sha256sum, 파이썬 hashlib과 같은 값이 나와요.
  2. 파일을 확인하려면 파일을 고르고 끌어다 놓으세요. 파일은 서버로 올라가지 않고 브라우저 메모리에서만 읽어요.
  3. 출력 형식에서 hex 소문자·대문자·Base64를 바꿀 수 있어요. 값은 그대로이고 표기만 달라져요.
  4. API 서명처럼 비밀 키가 필요한 경우 HMAC을 켜고 키를 넣으세요. 모든 알고리즘이 HMAC-MD5, HMAC-SHA256 … 으로 바뀌어요.
  5. 내려받은 프로그램의 공식 해시가 있다면 checksum 칸에 붙여넣으세요. 다섯 결과 중 일치하는 줄이 강조되고 "일치해요"가 떠요.

해시 함수란?

해시 함수는 길이에 상관없이 어떤 데이터든 정해진 길이의 지문으로 바꾸는 함수예요. 같은 입력은 언제나 같은 값이 나오고, 한 글자만 바뀌어도 결과가 완전히 달라져요(눈사태 효과). 결과에서 원문을 되돌릴 수 없어서 암호화가 아니라 단방향 요약이라고 불러요. 그래서 파일이 중간에 바뀌지 않았는지 확인하는 체크섬, 데이터 중복 확인, Git 커밋 ID, 전자서명의 재료로 쓰여요.

알고리즘길이hex 글자 수보안 상태주로 쓰는 곳
MD5128비트32자충돌 공격 가능 (보안용 X)단순 무결성 확인, 캐시 키, ETag
SHA-1160비트40자충돌 실증됨 (2017, SHAttered)옛 Git 커밋 ID, 레거시 시스템
SHA-256256비트64자안전파일 체크섬, TLS 인증서, 비트코인, JWT(HS256)
SHA-384384비트96자안전TLS, SRI(<script integrity>)
SHA-512512비트128자안전리눅스 배포판 체크섬, 64비트 CPU에서 빠름

체크섬으로 다운로드 파일 검증하기

리눅스 ISO나 오픈소스 프로그램 배포 페이지에는 보통 SHA256SUMS 같은 해시가 함께 적혀 있어요. 내려받은 파일을 이 도구에 넣고 공식 해시를 checksum 칸에 붙여넣어 일치하면, 전송 중 손상되거나 누군가 바꿔치기하지 않았다는 뜻이에요. 터미널을 쓴다면 아래 명령과 같은 결과예요.

운영체제SHA-256 명령MD5 명령
Windows (cmd)certutil -hashfile 파일 SHA256certutil -hashfile 파일 MD5
Windows (PowerShell)Get-FileHash 파일Get-FileHash 파일 -Algorithm MD5
macOSshasum -a 256 파일md5 파일
Linuxsha256sum 파일md5sum 파일

텍스트 해시가 터미널과 다르게 나온다면 대부분 줄바꿈 때문이에요. echo "hello" | sha256sum은 끝에 줄바꿈(\n)까지 넣어 계산해요. 이 도구와 같게 하려면 echo -n "hello"를 쓰세요. "hello"의 SHA-256은 2cf24dba…9824, 줄바꿈이 붙으면 5891b5b5…be03으로 완전히 달라져요.

HMAC이란?

HMAC(Hash-based Message Authentication Code)은 해시에 비밀 키를 섞어 "이 메시지를 키를 아는 사람이 만들었다"를 증명하는 방식이에요. 결제·웹훅 API(토스페이먼츠, Stripe, GitHub Webhook 등)가 요청 본문에 HMAC-SHA256 서명을 붙여 보내고, 받는 쪽은 같은 키로 다시 계산해 비교해요. 키가 다르면 결과가 전혀 달라서 키 없이 서명을 위조할 수 없어요. 계산식은 H((K ⊕ opad) ‖ H((K ⊕ ipad) ‖ 메시지))이에요.

계산 방식

비밀번호를 저장할 때는 MD5나 SHA-256을 그대로 쓰면 안 돼요. 너무 빨라서 무차별 대입에 약하니 bcrypt·scrypt·Argon2처럼 일부러 느리게 만든 함수를 쓰세요. 이 페이지의 모든 계산은 브라우저 안에서만 이뤄지고, 입력한 텍스트·파일·키는 어디에도 전송되거나 저장되지 않아요.

자주 묻는 질문

MD5와 SHA-256 중 무엇을 써야 하나요?
새로 만드는 시스템이라면 SHA-256을 쓰세요. MD5는 서로 다른 두 파일이 같은 해시를 갖도록 만드는 충돌 공격이 가능해서 보안 목적(서명, 위변조 방지)에는 쓰면 안 돼요. 단순히 전송 오류를 확인하거나 캐시 키를 만드는 정도라면 MD5도 괜찮아요.
해시를 원래 문자열로 되돌릴 수 있나요?
아니요. 해시는 단방향 함수라 수학적으로 되돌릴 수 없어요. 다만 "password"처럼 흔한 문자열은 미리 계산해 둔 표(레인보우 테이블)로 찾아낼 수 있어서, 비밀번호 저장에는 솔트를 섞고 bcrypt·Argon2 같은 느린 함수를 써야 해요.
터미널 sha256sum 결과와 다르게 나와요.
대부분 끝 줄바꿈 차이예요. echo "텍스트" | sha256sum 은 줄바꿈까지 포함해 계산하므로 echo -n 을 쓰세요. 윈도우 메모장에서 저장한 파일은 줄바꿈이 CRLF(\r\n)이고, 한글이 EUC-KR(CP949)로 저장됐다면 UTF-8과 바이트가 달라 해시도 달라져요.
대문자 해시와 소문자 해시는 다른 값인가요?
같은 값이에요. 16진수 표기에서 a~f를 대문자로 쓰느냐 소문자로 쓰느냐의 차이일 뿐이에요. 윈도우 certutil·PowerShell은 대문자, 리눅스 sha256sum은 소문자로 보여 줘요. checksum 비교 칸은 대소문자를 자동으로 맞춰 비교해요.
큰 파일도 해시를 계산할 수 있나요?
2GB까지 열 수 있어요. 파일 전체를 브라우저 메모리에 읽은 뒤 계산하므로 수백 MB 이상이면 몇 초 걸릴 수 있고, 메모리가 적은 휴대폰에서는 실패할 수 있어요. 아주 큰 ISO 파일은 위 표의 터미널 명령이 더 빨라요.
HMAC 키는 어떤 형식으로 넣나요?
입력한 문자열을 UTF-8 바이트로 바꿔 키로 써요. 서비스에서 받은 키가 hex나 Base64로 적혀 있어도 대부분 그 문자열 자체를 키로 쓰지만, 일부 API는 디코딩한 바이트를 키로 쓰라고 하니 문서를 확인하세요.

이 도구와 함께 보면 좋은 글

관련 도구

더 둘러보기

💻 개발자 다른 도구

🔥 많이 찾는 도구

🔮 재미로 한 번 더

📝 읽어 볼 만한 글

글 전체 보기 →