HMAC 생성기 (SHA-256, SHA-1, SHA-512)
비밀 키로 메시지의 HMAC을 SHA-256, SHA-1, SHA-512로 생성하고 16진수로 출력합니다 — 100% 브라우저에서 실행되며 업로드되지 않습니다.
🔒 메시지와 키는 브라우저에서 처리되며 업로드되지 않습니다.
HMAC이란?
HMAC(해시 기반 메시지 인증 코드)은 비밀 키와 암호학적 해시 함수를 결합해 메시지의 무결성과 진위를 동시에 증명하는 고정 길이 코드를 만듭니다. 단순 해시와 달리 HMAC은 비밀 키를 아는 사람만 재현할 수 있어, API 요청 서명, 웹훅 검증, 쿠키 보호, 토큰 보안 등에 널리 쓰입니다. 이 도구는 브라우저에 내장된 Web Crypto API를 사용하며, 메시지를 UTF-8로 인코딩한 뒤 결과를 소문자 16진수로 반환합니다. 비밀 키가 일반 텍스트가 아니라면 키 형식을 Hex나 Base64로 바꾸세요. 그러면 AWS·Azure Shared Key·JWT HS256 같은 API 서명 방식에서 흔한 바이너리 키가 서버가 쓰는 것과 정확히 같은 바이트로 디코딩됩니다.
알고리즘 선택
SHA-256은 현대적인 기본값으로 대부분의 용도에 적합하며 64자리 16진수 코드를 만듭니다. SHA-512는 128자리의 더 긴 출력을 제공하며 높은 보안이 요구되는 상황에서 자주 쓰입니다. SHA-1은 오래된 시스템이나 레거시 웹훅 서명과의 호환성을 위해 제공되지만 취약한 것으로 간주되므로 새 설계에는 사용하지 않아야 합니다. 연동하려는 API나 상대 서비스가 기대하는 알고리즘을 선택하고 그들이 쓰는 것과 동일한 비밀 키를 붙여넣으면, 여기서 만든 HMAC이 상대의 값과 바이트 단위로 일치합니다.
자주 묻는 질문
HMAC과 일반 해시의 차이는 무엇인가요?
일반 해시(예: SHA-256 단독)는 메시지에만 의존하므로 누구나 계산할 수 있습니다. HMAC은 여기에 비밀 키까지 섞기 때문에 키를 공유한 당사자만 같은 코드를 생성하거나 검증할 수 있으며, 바로 이 점이 인증에 유용합니다.
메시지나 비밀 키가 서버로 업로드되나요?
아니요. HMAC은 전적으로 브라우저의 Web Crypto API로 계산됩니다. 메시지와 키는 기기를 벗어나지 않으며, 어떤 서버로도 전송되거나 저장되지 않습니다.
어떤 알고리즘을 선택해야 하나요?
연동 대상이 다른 것을 요구하지 않는 한 SHA-256을 사용하세요. 높은 보안이 필요하고 더 긴 출력을 원하면 SHA-512를, 레거시 시스템과 반드시 맞춰야 할 때만 SHA-1을 사용하세요. SHA-1은 더 이상 권장되지 않습니다.
비밀 키가 16진수(hex)나 Base64예요 — 어떻게 쓰나요?
키 형식 선택기를 Hex 또는 Base64로 설정하세요. 많은 API 서명 비밀 키는 읽을 수 있는 텍스트가 아니라 hex나 Base64로 배포된 무작위 바이트입니다. 키를 올바르게 디코딩하는 것이 중요한데, 같은 문자를 UTF-8로 해석할 때와 hex로 해석할 때 완전히 다른 HMAC이 나오기 때문입니다.