%3C/text%3E%3C/svg%3E">
💻
💻 IT·개발

HMAC-SHA256 생성기

입력하면 바로 계산됩니다.

입력값

HMAC-SHA256 생성기 쉽게 이해하기 — 개념과 원리

HMAC-SHA256은 비밀 키와 메시지를 함께 넣어 256비트 인증 태그를 만드는 메시지 인증 코드입니다. 키를 가진 사람만 태그를 만들고 검증할 수 있습니다. 이 도구는 브라우저 안에서 태그를 계산하며, HMAC은 API 요청과 웹훅 서명, HS256 방식의 JWT, 쿠키나 메시지 위변조 확인에 쓰입니다.

HMAC의 이중 해시 구조키 secret을 64바이트로 채워 0x36과 XOR한 뒤 메시지와 함께 해시하고, 다시 0x5c와 XOR해 안쪽 결과와 함께 해시하면 7a284e50…cd2cd0eb1이 나옵니다.키 + 메시지를 두 번 해시"secret"6바이트 + 0 58개 = 64바이트① 안쪽키 ⊕ 0x36+메시지32 B"The quick brown fox"② 바깥쪽키 ⊕ 0x5c+안쪽 32B태그7a284e5025f32a846fa3e6957d10278eb5726dd4e0b04c8e0259defcd2cd0eb1키가 없으면 이 태그를 만들 수 없습니다
바깥 해시가 안쪽 해시를 감싸서 길이 확장 공격을 막습니다.

계산 방법

HMAC(K, m) = H((K′ ⊕ opad) ∥ H((K′ ⊕ ipad) ∥ m)) (RFC 2104)

원리

SHA-256으로 단순히 '키 ∥ 메시지'를 해시하면 안전하지 않습니다. 머클-담고르 구조 때문에 공격자가 키 없이도 메시지 뒤에 내용을 덧붙이고 올바른 해시를 계산할 수 있기 때문입니다(길이 확장 공격). HMAC은 서로 다른 두 파생 키로 해시를 두 번 감싸고, 바깥 해시가 안쪽 상태를 감추어 이 공격을 막습니다. 안전성은 해시 압축 함수의 의사난수성에 기대도록 증명되어 있습니다.

예제 풀이

  1. 키 "secret"(6바이트) 뒤에 0을 58바이트 채워 64바이트로 만듭니다.
  2. 안쪽: 키를 0x36과 XOR하고 "The quick brown fox"의 UTF-8 바이트를 붙여 SHA-256을 계산합니다.
  3. 바깥쪽: 키를 0x5c와 XOR하고 안쪽 결과 32바이트를 붙여 다시 해시합니다.
  4. 결과: 7a284e5025f32a846fa3e6957d10278eb5726dd4e0b04c8e0259defcd2cd0eb1

결과 해석

받는 쪽은 같은 키로 태그를 다시 계산해 정확히 일치할 때만 메시지를 받아들입니다. 키나 메시지가 한 글자, 대소문자 하나만 달라도 태그는 완전히 달라집니다. 일부 API는 16진수 대신 Base64로 표시하지만 바이트는 같습니다.

흔한 실수

주의: HMAC은 무결성과 출처를 증명할 뿐, 메시지를 숨기지는 않습니다. 실제 서비스의 비밀 키는 공용 기기나 신뢰할 수 없는 환경에 입력하지 마시기 바랍니다.

자주 묻는 질문

HMAC은 암호화인가요?

아닙니다. 메시지가 바뀌지 않았음을 증명하는 태그일 뿐, 메시지는 누구나 읽을 수 있습니다.

키는 얼마나 길어야 하나요?

RFC 2104는 해시 출력 길이 이상을 권장하므로 SHA-256이라면 32바이트 이상이 좋습니다.

다른 도구와 결과가 다른 이유는 무엇인가요?

키 형식(텍스트·16진수·Base64), 끝의 줄바꿈, 출력 형식을 확인해 보시기 바랍니다.

출처: RFC 2104, HMAC: Keyed-Hashing for Message Authentication · NIST FIPS 198-1, The Keyed-Hash Message Authentication Code (HMAC)

2026년 11월 8일 확인. 표준 공식과 RFC/IEEE 정의를 사용해 브라우저 안에서만 계산합니다. 입력한 내용은 어디에도 전송되지 않습니다.

💻 IT·개발 계산기 전체 →🏠 홍라이프 계산기 홈 →