HMAC 생성기
SHA-256/384/512를 사용하여 HMAC 서명을 생성합니다.
이 도구 소개
HMAC(해시 기반 메시지 인증 코드)는 전송 또는 저장 중인 데이터의 무결성과 신뢰성을 검증하는 암호화 기술입니다. 비밀 키와 메시지를 결합하여 HMAC은 고유한 서명을 생성하여 데이터가 변조되지 않았으며 비밀 키를 가진 사람만이 그것을 생성했을 수 있음을 증명합니다. 이는 API 보안, 웹훅 검증, 자격증명 서명, 그리고 인터넷상의 민감한 통신 보호에 필수적입니다.
이 도구를 사용하려면 메시지를 텍스트 필드에 입력하고 수신자와 공유할 비밀 키를 제공하십시오. 보안 요구사항에 따라 해시 알고리즘(SHA-256, SHA-384 또는 SHA-512)을 선택한 후 "Generate HMAC"을 클릭하여 서명을 생성합니다. 결과 해시는 데이터와 함께 전송될 수 있으며, 수신자는 자신의 비밀 키 사본을 사용하여 동일한 HMAC을 생성하여 신뢰성을 검증할 수 있습니다.
HMAC은 결제 처리업체, 클라우드 API(AWS, Google Cloud, Stripe) 및 실시간 통신 시스템에서 변조를 방지하고 메시지 출처를 확인하기 위해 광범위하게 사용됩니다. SHA-256 변형은 대부분의 사용 사례에 강력한 보안을 제공하며, SHA-384와 SHA-512는 매우 민감한 응용 프로그램을 위한 추가 보안 여유를 제공합니다. HMAC의 보안은 비밀 키를 비공개로 유지하는 것에 전적으로 달려 있으므로, 안전하지 않은 채널을 통해 공유하지 마십시오.
자주 묻는 질문
코드 구현
import hmac
import hashlib
import base64
import secrets
# Generate HMAC-SHA256
key = secrets.token_bytes(32) # 256-bit random key
message = "Hello, World!"
# Raw hex output
mac = hmac.new(key, message.encode(), hashlib.sha256)
print("HMAC-SHA256 (hex):", mac.hexdigest())
# Base64 output (common for API signatures)
mac_b64 = base64.b64encode(mac.digest()).decode()
print("HMAC-SHA256 (b64):", mac_b64)
# HMAC-SHA512
mac512 = hmac.new(key, message.encode(), hashlib.sha512)
print("HMAC-SHA512 (hex):", mac512.hexdigest())
# Constant-time verification (prevents timing attacks)
def verify_hmac(key: bytes, message: str, expected: str) -> bool:
computed = hmac.new(key, message.encode(), hashlib.sha256).hexdigest()
return hmac.compare_digest(computed, expected)
signature = mac.hexdigest()
print("Valid: ", verify_hmac(key, message, signature)) # True
print("Invalid:", verify_hmac(key, "tampered", signature)) # FalseComments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.