개발자 / 서명
HMAC 생성기 (SHA-256, SHA-512)
SHA-256, SHA-384, SHA-512 또는 SHA-1을 사용해 메시지와 비밀 키의 HMAC 서명을 16진수와 Base64로 생성하여 웹훅 및 API 서명을 테스트합니다.
HMAC 생성기 (SHA-256, SHA-512): HMAC은 해시 함수를 통해 비밀 키와 메시지를 결합하므로 키를 가진 사람만 동일한 서명을 생성할 수 있습니다. 브라우저가 HTTPS에 사용하는 것과 동일한 구현인 브라우저의 Web Crypto API로 계산합니다. 빈 키도 허용되며, HMAC 표준에 따라 0바이트 키로 처리합니다. 서버에 파일을 전혀 업로드하지 않고 브라우저에서 100% 로컬로 실행됩니다.
- 카테고리
- 개발자 도구
- 실행 횟수
- 브라우저에서
- 비용
- 무료 · 가입 불필요
- 사용 가능 여부
- 사용 가능
브라우저에서 전부 실행됩니다
——메시지는 공백과 줄 바꿈을 포함해 입력한 그대로 UTF-8 텍스트로 읽습니다. 끝에 줄 바꿈을 추가하면 결과가 달라집니다. Stripe 및 GitHub와 같은 서비스의 웹훅은 이 방식으로 HMAC-SHA256 서명됩니다.
웹훅 확인
파싱하기 전에 원시 요청 본문을 가져와 공유 비밀 키로 HMAC을 계산하고, 일정 시간 비교 방식으로 서명 헤더와 비교하십시오. 이렇게 하면 일치한 문자의 수가 처리 시간에 드러나지 않습니다. 재전송 공격을 막으려면 타임스탬프가 몇 분 이상 지난 요청을 거부하십시오.
키
해시 출력과 같은 길이의 키, 즉 SHA-256에 사용할 32개의 무작위 바이트는 완전한 강도를 제공합니다. 더 긴 키는 먼저 해시되어 짧아집니다. 키를 코드 저장소에 보관하지 말고, 유출되면 키를 교체하십시오.
사용 방법
- 웹훅의 원시 본문처럼 전송된 내용 그대로 메시지를 붙여넣습니다.
- 비밀 키를 텍스트 또는 16진수로 입력하고 해시를 선택합니다.
- 16진수 또는 Base64 결과를 받은 서명과 비교합니다.
개인정보 보호 및 제한사항
메시지와 키는 브라우저에 유지되며 어디에도 전송되지 않습니다.
관련 도구
자주 묻는 질문
서명이 웹훅의 서명과 일치하지 않는 이유는 무엇인가요?
서명에 사용된 메시지는 바이트 단위로 원시 본문과 정확히 같아야 합니다. JSON을 파싱한 후 다시 직렬화하거나 줄바꿈이 하나라도 빠지거나 추가되면 내용이 변경됩니다. 일부 서비스는 Stripe의 t=…,payload처럼 타임스탬프와 본문을 함께 서명합니다.
HMAC-SHA1은 아직 안전한가요?
일반 해시에 SHA-1을 사용하는 경우와 달리 HMAC에서는 여전히 안전한 것으로 간주됩니다. 하지만 새 시스템에는 HMAC-SHA256을 사용해야 합니다.
16진수와 Base64 중 무엇을 사용해야 하나요?
둘 다 동일한 바이트를 표기하는 두 가지 방법이므로 서비스에 표시된 방식을 사용하면 됩니다. GitHub는 sha256= 접두사와 함께 16진수를 사용하고, 많은 다른 서비스는 Base64를 사용합니다.
무료 도구 · 브라우저에서회 실행 · 계정 불필요