Hash & Crypto Helpers

HMAC 생성기메시지와 키의 바이트를 정확하게

메시지와 키 인코딩을 지정한 뒤 생성하거나 예상 다이제스트를 바로 검증하세요.

HMAC 생성기

메시지

HMAC 다이제스트

메시지와 키는 이 페이지 메모리에서만 처리하며 업로드하거나 브라우저 저장소에 저장하지 않습니다.

옵션

공백 제거와 정규화 없음. 여러 줄 키는 Hex/Base64로 입력하고 전체 다이제스트에서 헤더 접두사를 제거하세요.

메시지: 최대 1,000,000 UTF-16 단위 및 바이트. 키: 최대 4,096 UTF-16 단위, 빈 값 불가.

키를 입력한 뒤 생성하거나 검증하세요. 메시지는 비어 있어도 됩니다.

HMAC 생성기는 같은 요청인데 서버마다 서명 결과가 다를 때 원인을 좁히는 데 사용합니다. 알고리즘을 바꾸기 전에 원본 메시지와 키 인코딩이 일치하는지 확인하세요.

HMAC-SHA256이 기본값이며 SHA-512와 SHA-1도 선택할 수 있습니다. 웹훅 서명에 필요한 문자열은 서비스 규칙에 따라 준비하고, 이 페이지에서 HMAC 검증을 수행하세요.

HMAC 생성기를 사용하는 이유

같은 글자도 다른 키가 됩니다

HMAC 생성기는 메시지와 키의 인코딩을 따로 설정합니다. 텍스트 6162는 네 바이트지만 Hex 6162는 두 바이트입니다. 키를 인코딩된 상태로 받았다면 그 표현부터 맞춰야 합니다.

두 가지 키 표현이 길이가 다른 바이트 배열로 해석되어 같은 메시지의 서명에 들어갑니다.

생성 없이 바로 검증

예상 다이제스트를 입력하면 현재 메시지와 키로 바로 검증합니다. 잘못된 형식과 길이 오류, 형식은 맞지만 값이 다른 경우를 구별해서 보여 줍니다.

같은 다이제스트에는 체크가 표시되고 메시지 한 바이트가 바뀌면 다른 결과와 엑스가 표시됩니다.

불일치를 줄이는 준비

01

원본 요청 본문을 유지하세요

JSON을 정렬하거나 보기 좋게 들여쓰기하면 서명 대상도 달라집니다. 끝의 줄바꿈과 공백, BOM도 확인하세요.

  • 원본 바이트를 정확히 전달하려면 Hex 또는 Base64를 사용하세요.
02

키 인코딩을 따로 선택하세요

문자 그대로의 키는 UTF-8, 16진수 바이트는 Hex, 인코딩된 키는 표준 Base64를 선택합니다. 키는 기본적으로 숨겨집니다.

  • 키 입력란은 줄바꿈이 포함된 붙여넣기와 끌어놓기를 거부하며 기존 키를 유지합니다. 여러 줄 키는 먼저 Hex나 Base64로 인코딩하세요.
03

검증할 값의 형식을 맞추세요

결과 인코딩과 예상 다이제스트 인코딩은 별개입니다. 생성과 검증은 수동으로 실행되며 입력이나 설정을 바꾸면 복사가 비활성화됩니다.

  • Ctrl/Cmd + Enter는 예상 다이제스트 입력란에서 검증하고 다른 곳에서는 생성합니다. 계산 중 반복 입력은 무시합니다.

서명 조건을 각각 설정

알고리즘별 전체 길이

SHA-256은 32바이트, SHA-512는 64바이트, SHA-1은 20바이트를 반환합니다. 상대 시스템에 지정된 알고리즘을 사용하세요. SHA-1은 기존 시스템 호환용입니다.

문자와 이진 바이트 입력

메시지와 키에 UTF-8, Hex, 표준 Base64를 사용할 수 있습니다. Hex 대소문자는 같은 바이트를 나타내지만 Base64 대소문자는 구별합니다. 출력은 Hex 또는 Base64로 선택합니다.

브라우저 표준 검증

Web Crypto가 HMAC 생성과 검증을 수행합니다. 일치는 현재 메시지와 키에 관한 결과입니다. 타임스탬프나 요청 유효기간, 재전송 여부는 확인하지 않습니다.

입력 규칙과 지원 범위

자동 정규화 없음
공백 제거, Unicode 정규화, JSON 재직렬화를 하지 않습니다. Hex는 짝수 자릿수만 허용하며 공백과 접두사를 거부합니다. Base64URL, 공백, 잘못된 패딩과 비정규 끝 비트도 거부하며 올바른 패딩 생략은 허용합니다.
빈 메시지는 허용
빈 키는 거부합니다. 메시지는 최대 1,000,000 UTF-16 단위 및 디코딩 후 1,000,000바이트입니다. 키 입력은 최대 4,096 UTF-16 단위입니다. 짝이 없는 서로게이트도 오류로 처리합니다.
전체 다이제스트만 검증
선택한 알고리즘에 따라 20, 32, 64바이트가 필요합니다. sha256= 같은 헤더 접두사는 직접 제거하세요. 잘린 서명, 파일 입력, URL 가져오기와 플랫폼별 서명 템플릿은 지원하지 않습니다.
교체 전 미리보기
예제와 지우기는 바뀔 문자 수를 보여 준 뒤 적용하며 한 번 되돌릴 수 있습니다. 이전 키를 포함한 스냅샷은 페이지 메모리에 남고 다음 입력 수정 때 폐기됩니다. 키 생성과 비밀번호 저장은 제공하지 않습니다.

HMAC 생성기 질문

같은 입력인데 다른 사이트와 결과가 다른 이유는 무엇인가요?

먼저 원본 메시지의 공백과 줄바꿈, 키 인코딩, 알고리즘을 확인하세요. 문자처럼 보이는 Hex 키를 UTF-8로 처리하면 다른 결과가 나옵니다. 서비스가 타임스탬프나 경로를 함께 서명하는지도 확인해야 합니다.

어떤 알고리즘을 골라야 하나요?

연동 문서에서 요구하는 알고리즘을 선택하세요. 기본값은 SHA-256이며 SHA-512와 SHA-1도 지원합니다. 출력 길이가 비슷하다는 이유로 다른 알고리즘을 대신 사용할 수는 없습니다.

HMAC 값을 다시 원문으로 되돌릴 수 있나요?

HMAC 생성기는 인증 코드를 계산하며 복호화 기능은 없습니다. HMAC은 메시지를 암호화하지 않으므로 결과에서 원문을 복원하는 도구가 아닙니다. 원문은 별도로 보관하거나 전달해야 합니다.

웹훅 서명은 어떻게 검증하나요?

서비스 문서대로 원본 본문과 비밀키, 서명 문자열을 준비하세요. 헤더에서 추출한 전체 다이제스트와 인코딩을 입력하고 검증을 누릅니다. 만료 시간과 재전송 방지는 서버에서 별도로 검사해야 합니다.

비밀키를 비워 두면 어떻게 되나요?

이 페이지에서는 비밀키를 비우면 오류를 표시합니다. 일부 계산기와 다른 정책이므로 빈 키 테스트 결과를 그대로 비교할 수 없습니다. 메시지는 비어 있어도 계산할 수 있습니다.

궁금한 점이 남았나요?

알려진 서명으로 시작

HMAC 생성기에서 RFC 예제를 검증한 뒤 메시지 한 글자를 바꾸어 불일치 결과를 확인하세요.

메시지와 키 인코딩을 지정한 뒤 생성하거나 예상 다이제스트를 바로 검증하세요.