메시지와 시크릿으로 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을 헤더에 넣는 경우가 많습니다. 접두사와 헤더 이름은 벤더 문서를 따르세요.
사용 순서
- 시크릿과 원문을 넣습니다. JSON을 다시 예쁘게 만들어 넣으면 실패하는 경우가 많습니다.
- 나온 16진수를 헤더 값과 비교합니다.
sha256=는 직접 붙이거나 떼세요. - 강도 숫자는 참고만 하세요. 금고가 아닙니다.
정직한 제한
- HMAC-SHA256만 있습니다. SHA-1 레거시 헤더는 계산하지 않습니다.
- 상수 시간 비교, 재전송 방지, 이벤트 ID 멱등은 서버 일입니다.
- 비밀번호 관리자, 브라우저 저장, 팀 공유가 없습니다.
- 값은 이 탭에 남습니다.
서명 계산기입니다. 보안 제품이 아닙니다.