Générateur HMAC
Génère des signatures HMAC en utilisant SHA-256/384/512 avec message et clé secrète.
À propos de cet outil
HMAC (Code d'Authentification de Message Basé sur le Hachage) est une technique cryptographique utilisée pour vérifier l'intégrité et l'authenticité des données en transit ou au repos. En combinant une clé secrète avec un message, HMAC produit une signature unique qui prouve que les données n'ont pas été altérées et que seule une personne possédant la clé secrète aurait pu la créer. Cela en fait un élément essentiel pour sécuriser les API, valider les webhooks, signer les identifiants et protéger les communications sensibles sur Internet.
Pour utiliser cet outil, entrez votre message dans le champ de texte et fournissez une clé secrète que vous partagez avec le destinataire. Choisissez l'algorithme de hachage (SHA-256, SHA-384 ou SHA-512) en fonction de vos exigences de sécurité, puis cliquez sur « Générer HMAC » pour produire la signature. Le hash résultant peut être envoyé avec vos données afin que le destinataire puisse vérifier l'authenticité en générant le même HMAC avec sa copie de la clé secrète.
HMAC est largement utilisé par les processeurs de paiement, les API cloud (AWS, Google Cloud, Stripe) et les systèmes de communication en temps réel pour empêcher la falsification et confirmer l'origine du message. La variante SHA-256 offre une sécurité solide pour la plupart des cas d'usage, tandis que SHA-384 et SHA-512 offrent une marge de sécurité supplémentaire pour les applications hautement sensibles. Rappelez-vous que la sécurité de HMAC dépend entièrement du maintien de votre clé secrète privée — ne la partagez jamais sur des canaux non sécurisés.
Questions Fréquentes
Implémentation du Code
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.