이 도구에 대해
HMAC는 메시지가 공유 비밀을 아는 사람에게서 왔으며 변조되지 않았음을 증명합니다 — 서명된 웹훅, API 요청 서명, 여러 토큰 방식의 배경이 되는 메커니즘입니다. 메시지와 비밀 키를 입력하고 SHA-256, SHA-384 또는 SHA-512를 선택하면 16진수 또는 Base64로 서명을 얻습니다.
계산은 브라우저 기본 Web Crypto API를 사용하며 전적으로 당신의 기기에서 이루어지므로 비밀 키는 전송되지 않습니다. 입력하는 동안 실시간으로 갱신됩니다.
자주 묻는 질문
HMAC은 어디에 쓰이나요?
HMAC(해시 기반 메시지 인증 코드)은 메시지가 변조되지 않았다는 것과 공유 비밀 키를 아는 사람이 보냈다는 것을 동시에 증명합니다. Stripe나 GitHub 같은 서비스가 웹훅 페이로드에 서명해 진위를 검증할 수 있게 하는 방식이 바로 이것입니다.
HMAC은 그냥 메시지를 해시하는 것과 같나요?
아닙니다. 단순 해시(메시지만 SHA-256)는 누구나 다시 계산할 수 있어 출처를 증명하지 못합니다. HMAC은 길이 확장 공격에 강한 방식으로 비밀 키를 섞어 넣기 때문에, 키를 가진 사람만 유효한 서명을 만들 수 있습니다.
제 비밀 키가 어딘가로 전송되나요?
아닙니다. HMAC은 브라우저의 Web Crypto API(crypto.subtle)를 사용해 로컬에서 계산됩니다. 키와 메시지는 절대 기기를 벗어나지 않습니다.
정확히 복사했는데도 서명 검증에서 "일치하지 않음"이라고 나오는 이유는 무엇인가요?
웹훅 헤더는 흔히 sha256=<hex>처럼 접두사가 붙어 있거나, 대소문자가 다르거나, 앞뒤에 공백이 있습니다. 검증기는 대소문자를 자동으로 정규화하고 algorithm= 접두사를 제거하지만, 발신자가 사용한 것과 동일한 해시 알고리즘과 키 인코딩(UTF-8/Hex/Base64)을 선택했는지 다시 확인하세요.
어떤 키 인코딩을 선택해야 하나요?
대부분의 API는 일반 UTF-8 비밀 문자열(예: whsec_...)을 제공하므로 UTF-8을 선택하세요. 제공업체 문서에서 키가 그런 방식으로 인코딩되어 있다고 명시한 경우에만 Hex나 Base64를 선택하세요.