HMAC 계산기
메시지와 키를 안쪽·바깥쪽 두 번 해시로 감싸는 HMAC(RFC 2104)을 SHA-1·SHA-256·SHA-512로 계산합니다. Stripe·GitHub 같은 웹훅 서명 검증에 바로 쓸 수 있는 16진수·Base64 값을 함께 냅니다.
키
메시지
사용 방법
- 1키와 메시지를 넣습니다(텍스트·16진수·Base64 중 골라서).
- 2해시 함수(SHA-1·SHA-256·SHA-512)를 고릅니다.
- 316진수·Base64 값을 확인하고 필요하면 복사합니다.
자주 묻는 질문
메시지와 키를 안쪽·바깥쪽 두 번 해시로 감싸 만드는 값(RFC 2104)입니다. HMAC(K,m) = H((K′⊕opad) ‖ H((K′⊕ipad) ‖ m))으로, 같은 키를 아는 두 쪽만 같은 값을 계산할 수 있어 메시지가 그 키를 가진 쪽이 보낸 것이고 중간에 안 바뀌었는지 확인하는 데 씁니다.
많은 해시 함수(SHA-256 포함)는 길이확장 공격에 취약해서, 원래 메시지를 몰라도 H(key‖message)를 알면 H(key‖message‖추가데이터)를 계산해버릴 수 있습니다. HMAC은 안쪽 해시 결과를 바깥쪽 해시로 한 번 더 감싸 이 공격을 막습니다.
TOTP는 이 계산의 특수한 경우입니다 — 메시지가 항상 "8바이트 카운터" 하나로 고정된 HMAC-SHA1입니다. 이 계산기는 임의의 메시지·키·해시 함수(SHA-1/256/512)를 받는 범용 버전입니다.
Stripe·GitHub 같은 서비스는 요청 본문(메시지)과 미리 공유한 비밀키로 HMAC을 계산해 요청 헤더에 실어 보냅니다. 받는 쪽이 같은 키·메시지·해시 함수로 이 계산기에 넣어 나온 값이 헤더 값과 같으면, 그 요청이 정말 그 서비스가 보낸 것임을 확인할 수 있습니다.
전송되지 않습니다. 모든 계산은 브라우저의 SubtleCrypto로 이뤄지고, 입력값은 이 기기에만 남습니다.
알아두면 좋은 점
- 이 계산기는 방문 기록·즐겨찾기·입력값 저장 대상에서 제외됩니다. API 키 같은 민감한 값을 다룰 수 있기 때문입니다.
- 키가 해시의 블록 크기(SHA-1·SHA-256은 64바이트, SHA-512는 128바이트)보다 길면 먼저 그 해시로 줄인 뒤 계산합니다(RFC 2104 규정).
함께 보면 좋은 도구
마지막 검증: 2026년 9월 3일 · 결과는 참고용 추정치입니다.