HMAC 서명

이 브라우저에서 처리

텍스트 한도: 2000000자

이 도구는 입력을 업로드하지 않습니다.

메시지와 시크릿으로 HMAC-SHA256을 계산하고, 붙인 문자열의 길이·문자 종류만 약하게 점수 매깁니다. 비밀번호를 저장하거나 채워 주는 관리자가 아닙니다.

택배·결제·GitHub 웹훅이 401을 주고, 헤더의 서명과 내가 계산한 값이 다릅니다. 이 페이지는 원문과 시크릿으로 HMAC-SHA256 16진수를 다시 찍어 보는 일입니다.

비밀번호를 만들어 보관하려면 비밀번호 생성입니다. 내용을 숨기려면 AES 암호화입니다.

웹훅에서 틀리는 지점

GitHub 문서는 본문을 UTF-8 원본 바이트로 두고, X-Hub-Signature-256 값과 timingSafeEqual로 비교하라고 합니다. Express에서 express.json()을 먼저 쓰면 바이트가 달라져 서명이 어긋납니다. 이 탭은 붙여 넣은 문자열을 UTF-8로 해시하므로, 서버가 받은 raw body와 한 글자라도 다르면 결과가 다릅니다.

택배 API 계열도 HMAC-SHA256을 헤더에 넣는 경우가 많습니다. 접두사와 헤더 이름은 벤더 문서를 따르세요.

사용 순서

  1. 시크릿과 원문을 넣습니다. JSON을 다시 예쁘게 만들어 넣으면 실패하는 경우가 많습니다.
  2. 나온 16진수를 헤더 값과 비교합니다. sha256=는 직접 붙이거나 떼세요.
  3. 강도 숫자는 참고만 하세요. 금고가 아닙니다.

정직한 제한

  • HMAC-SHA256만 있습니다. SHA-1 레거시 헤더는 계산하지 않습니다.
  • 상수 시간 비교, 재전송 방지, 이벤트 ID 멱등은 서버 일입니다.
  • 비밀번호 관리자, 브라우저 저장, 팀 공유가 없습니다.
  • 값은 이 탭에 남습니다.

서명 계산기입니다. 보안 제품이 아닙니다.

자주 묻는 질문

비밀번호를 저장해 주나요?

아닙니다. 브라우저에 남는 계산기입니다. 금고, 자동 완성, 동기화가 없습니다.

GitHub X-Hub-Signature-256과 같나요?

같은 계열의 HMAC-SHA256 16진수입니다. sha256= 접두사는 붙이지 않습니다. 비교 전에 접두사를 직접 떼세요.

Stripe처럼 t=시각,v1=해시 형식도 만드나요?

만들지 않습니다. 원문과 시크릿의 HMAC만 계산합니다. 타임스탬프 허용 오차는 서버에서 하세요.

JWT 서명을 검증하나요?

아닙니다. JWT는 디코더에서 읽기만 합니다. HMAC으로 토큰 시크릿을 추측하지 마세요.

강도 점수는 무엇을 보나요?

붙인 문자열의 길이, 대소문자, 숫자, 기호, 아주 흔한 영어 단어만 봅니다. 국정원 암호 기준이 아닙니다.

시크릿이 업로드되나요?

아닙니다. Web Crypto가 이 탭에서 서명합니다. 그래도 운영 웹훅 시크릿은 스테이징 값으로 시험하세요.

관련 도구