tigtools

HMAC 생성기

메시지와 비밀 키로 키 기반 메시지 인증 코드(HMAC)를 생성하거나 받은 서명을 확인하세요. 키와 메시지는 브라우저에만 남습니다.

브라우저에서 실행 가입 불필요

키와 메시지는 이 브라우저 탭에서만 처리되며 어디에도 전송되지 않습니다. 그래도 공유 컴퓨터나 신뢰할 수 없는 컴퓨터에 실제 운영 환경의 비밀 정보를 붙여 넣지 마세요.
키 형식

입력한 내용 그대로 UTF-8로 서명됩니다. 끝에 공백이나 줄바꿈을 추가하면 결과가 달라집니다.

출력 형식

서명을 16진수(대소문자 구분 없음) 또는 Base64 형식으로 붙여 넣어 위 결과와 비교하세요.

사용 방법

  1. 비밀 키를 입력하고 일반 텍스트인지 16진수 바이트인지 선택하세요.
  2. 웹훅 페이로드처럼 수신한 그대로의 메시지를 붙여 넣으세요.
  3. 서비스에서 사용하는 알고리즘과 출력 인코딩을 선택하세요. 입력하는 동안 HMAC이 갱신됩니다.
  4. 서명을 확인하려면 확인란에 붙여 넣고 “일치”인지 확인하세요.

작동 방식

HMAC(RFC 2104)은 비밀 키와 해시 함수를 결합해 키를 가진 사람만 만들 수 있는 서명을 생성합니다. 웹훅 및 서명된 API 요청과 같은 서비스는 각 메시지에 HMAC을 포함해 전송하며, 수신자는 이를 통해 메시지가 진본이고 변경되지 않았는지 확인할 수 있습니다.

이 도구는 브라우저의 Web Crypto API(crypto.subtle.importKey 및 sign)를 사용하며 RFC 4231 및 RFC 2202 테스트 벡터와 대조해 검증되었습니다. 텍스트 키와 메시지는 UTF-8로 인코딩됩니다. 16진수 키는 원시 바이트로 디코딩되며, 공백, 콜론, 앞부분의 0x는 무시됩니다. HMAC-SHA-256이 가장 널리 사용되며, HMAC-SHA-1은 MAC으로서 여전히 안전한 것으로 간주되지만 주로 오래된 API에서 사용됩니다.

서명이 일치하지 않으면 자주 달라지는 다음 항목을 확인하세요. 정확한 메시지 바이트(많은 웹훅 제공업체는 다시 형식을 지정한 JSON이 아닌 원본 본문에 서명합니다), 제공업체가 서명 문자열에 추가하는 타임스탬프나 접두사, 키를 텍스트로 사용해야 하는지 아니면 먼저 16진수 또는 Base64에서 디코딩해야 하는지, 예상 서명이 16진수인지 Base64인지, 그리고 비교 전에 제거해야 하는 “sha256=” 같은 접두사가 있는지 확인하세요.

예시

RFC 4231 테스트 사례

키는 “Jefe”(텍스트), 메시지는 “what do ya want for nothing?”이며 HMAC-SHA-256 결과는 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843입니다. “예제 사용”을 눌러 불러오세요.

웹훅 서명 확인

제공업체가 각 요청과 함께 X-Signature: sha256=… 헤더를 보냅니다. 원본 요청 본문을 메시지로, 웹훅 비밀 키를 키로 붙여넣고 HMAC-SHA-256과 16진수를 선택한 다음, “sha256=” 뒤의 값을 확인 입력란에 붙여넣으세요.

16진수로 인코딩된 키

일부 시스템은 0b0b0b…와 같은 16진수 문자열 형식으로 키를 제공합니다. 디코딩된 바이트로 서명하려면 키 형식으로 16진수를 선택하세요. 같은 문자열을 텍스트로 처리하면 결과가 완전히 달라집니다.

자주 묻는 질문

HMAC과 일반 해시의 차이는 무엇인가요?

누구나 메시지의 SHA-256 같은 일반 해시를 계산할 수 있습니다. HMAC은 비밀 키에도 의존하므로 키를 가진 사람만 생성하거나 확인할 수 있습니다. 이를 통해 메시지가 키 보유자에게서 왔으며 변조되지 않았음을 증명합니다.

서버에서 받은 HMAC과 왜 일치하지 않나요?

대부분 입력 바이트가 서로 다르기 때문입니다. 줄바꿈, 공백, JSON 키 순서, 문자 인코딩이 다르거나, 16진수 또는 Base64에서 디코딩해야 하는 키를 사용했을 수 있습니다. 또한 같은 인코딩(16진수 또는 Base64)으로 비교하고 “sha256=” 같은 접두사를 제거하세요.

비밀 키가 외부로 전송되나요?

아니요. 키와 메시지는 이 브라우저 탭에서 Web Crypto API를 통해서만 사용됩니다. 업로드되거나 저장되지 않으며 분석 데이터에도 포함되지 않습니다.

HMAC-SHA-1은 아직 안전한가요?

SHA-1 충돌이 HMAC-SHA-1을 직접적으로 무력화하지는 않으며, 호환성을 위해 여전히 사용할 수 있습니다. 새 시스템에는 HMAC-SHA-256 이상을 사용하세요.

개인정보 보호

키, 메시지, 결과는 이 브라우저 탭에만 존재합니다. 아무것도 업로드하거나 저장하거나 분석 도구로 전송하지 않습니다. 도구 사용 여부를 나타내는 익명 이벤트만 기록됩니다.