# Générateur HMAC-SHA256

Créez une signature HMAC-SHA256 à partir d’un message et d’une clé secrète. L’outil encode les deux en UTF-8, applique la construction HMAC de la RFC 2104 avec SHA-256 et renvoie le tag de 256 bits en hexadécimal ou en Base64. Les développeurs l’utilisent pour déboguer les signatures de webhook de services comme Stripe, GitHub ou Slack, signer des requêtes API et comparer les résultats à leur propre code. La clé n’est jamais renvoyée ni consignée.

## Foire aux questions

### Qu’est-ce que HMAC-SHA256 ?

HMAC-SHA256 est un code d’authentification de message construit à partir de SHA-256 et d’une clé secrète, comme le définit la RFC 2104. Seule une personne disposant de la clé peut calculer le tag correct pour un message. Le résultat fait 32 octets, soit 64 caractères hexadécimaux.

### Comment vérifier une signature de webhook ?

Collez le corps brut exact de la requête comme message et votre secret de signature comme clé, puis comparez le résultat à l’en-tête de signature. De nombreux services signent une combinaison, comme l’horodatage de Stripe, un point et le corps ; construisez donc le message comme l’indique leur documentation. Un seul octet modifié produit un tag différent.

### Existe-t-il un vecteur de test connu ?

Le cas de test 2 de la RFC 4231 utilise la clé Jefe et le message what do ya want for nothing? ; le résultat attendu est 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843. Cet outil renvoie exactement cette valeur.

### Comment la clé et le message sont-ils encodés ?

Les deux sont encodés en texte UTF-8. Si votre secret est fourni en hexadécimal ou en Base64, comme le font certains services, les octets diffèrent du texte affiché ; vous devez d’abord décoder la clé dans votre propre code. Les espaces et les retours à la ligne comptent dans les deux champs.

### Ma clé secrète est-elle stockée ?

Non. La clé sert uniquement à calculer le tag pendant la requête. Elle n’est pas incluse dans la réponse, consignée ni stockée.

### La clé peut-elle être vide ou très longue ?

HMAC accepte les clés de toutes longueurs, y compris une clé vide. Les clés de plus de 64 octets sont d’abord hachées avec SHA-256, comme le précise la RFC. Pour un usage réel, choisissez une clé aléatoire d’au moins 32 octets.

### Dois-je choisir l’hexadécimal ou Base64 ?

Utilisez le format envoyé par l’autre partie. GitHub et Stripe utilisent l’hexadécimal, tandis que Slack préfixe l’hexadécimal avec v0= et que de nombreux systèmes basés sur AWS et JWT utilisent Base64. Les deux encodent les mêmes 32 octets.

### HMAC-SHA256 est-il équivalent au hash de SHA-256 de la clé et du message concaténés ?

Non. HMAC hache le message deux fois avec des clés internes et externes complétées, ce qui protège contre les attaques par extension de longueur. Concaténer la clé et le message puis les hacher une seule fois donne un résultat différent et moins sûr.

### Comment comparer les signatures dans mon code ?

Utilisez une fonction de comparaison à temps constant, comme crypto.timingSafeEqual en Node.js ou hmac.compare_digest en Python. Une comparaison de chaînes ordinaire peut révéler des informations temporelles sur le tag attendu.

### Quelle peut être la taille maximale du message ?

Le message et la clé peuvent totaliser jusqu’à 5 MiB de texte. Cela couvre les charges utiles de webhook habituelles et les requêtes API.

Votre publicité ici ?

[Envoyez-nous un e-mail](mailto:hi@dennn.is?subject=Publicit%C3%A9%20sur%20OneClick%20Pro)

[Annonce La suite de plugins prête pour les agents de WordPress.](https://sleekwp.com/?ref=oneclickpro)
