HMAC 서명/검증기
HMAC 키를 생성하고 SHA-256/384/512 메시지 서명을 생성·검증합니다.
🔒모든 처리는 브라우저에서 이루어지며, 파일 및 데이터는 서버로 전송되지 않습니다.
이 도구에 대해
HMAC(Hash-based Message Authentication Code)는 공유 비밀 키와 해시 함수를 이용해 메시지의 무결성과 키 보유 여부를 확인하는 인증 코드입니다. HMAC은 메시지 내용을 숨기는 암호화가 아니므로 서명된 본문은 그대로 읽을 수 있습니다. 이 도구는 브라우저의 Web Crypto API로 HMAC-SHA-256, HMAC-SHA-384, HMAC-SHA-512 서명을 생성하거나 예상 서명을 검증합니다. 양쪽 시스템은 키뿐 아니라 메시지의 정확한 바이트 표현, 알고리즘과 출력 인코딩에도 합의해야 합니다.
주요 기능
- •SHA-256, SHA-384, SHA-512 기반 HMAC 선택
- •선택한 알고리즘에 맞춘 랜덤 키 생성
- •UTF-8, Hex, Base64, Base64URL 키 입력 지원
- •메시지 서명 생성과 기존 서명 검증 모드
- •Hex, Base64, 패딩 없는 Base64URL 출력 변환
- •서명 값과 X-Signature 헤더 예시 복사
사용 방법
- 1상대 시스템과 동일한 SHA 알고리즘을 선택하고 공유 키를 입력하거나 권장 길이의 랜덤 키를 생성하세요.
- 2키 형식을 실제 값에 맞춰 선택하세요. 텍스트, Hex, Base64와 Base64URL은 서로 다른 바이트로 해석될 수 있습니다.
- 3서명 모드에서는 원문 메시지와 출력 인코딩을 정한 뒤 서명을 생성하세요.
- 4검증 모드에서는 동일한 원문과 예상 서명 및 인코딩을 입력해 일치 여부를 확인하세요.
자주 묻는 질문
HMAC으로 메시지 내용을 암호화할 수 있나요?
아니요. HMAC은 메시지의 무결성과 공유 키를 아는 주체가 만든 값인지 확인하는 인증 수단이지 암호화가 아닙니다. 기밀성이 필요하면 검토된 암호화 방식이나 인증된 암호화(AEAD)를 별도로 사용하세요.
HMAC 키는 어떻게 보관해야 하나요?
예측하기 어려운 충분한 길이의 키를 생성해 비밀 관리 시스템에 저장하고, 소스 코드·URL·로그·공개 저장소에 남기지 마세요. 검증자와 서명자가 키를 공유해야 하므로 접근 권한을 최소화하고, 노출이 의심되면 폐기·교체할 수 있는 운영 절차를 마련하세요.
같은 키와 메시지인데 서명이 다른 이유는 무엇인가요?
알고리즘, 키 디코딩 방식, 메시지의 문자 인코딩 또는 출력 인코딩이 다를 수 있습니다. 공백, 줄바꿈, JSON 필드 순서처럼 작은 바이트 차이도 다른 HMAC을 만듭니다. 양쪽에서 동일한 정규화 규칙과 정확한 원문 바이트를 사용하세요.
SHA-256, SHA-384, SHA-512 중 무엇을 선택해야 하나요?
연동 대상 프로토콜이나 서비스가 지정한 알고리즘을 우선 사용하세요. 새 설계에서는 상호운용성과 키 관리 정책을 함께 검토해야 하며, 해시 이름만 바꾸는 것으로 전체 시스템의 안전성이 자동으로 보장되지는 않습니다.