HMAC-generator
HMAC is het algoritme achter de meeste ondertekende webhooks, AWS Signature v4-headers en JWT HS256-tokens. Voer een bericht en een geheime sleutel in, kies een hashfamilie, en deze generator genereert de HMAC exact volgens de specificatie van RFC 2104 – handig om te controleren wat uw backend gaat verzenden of om een handtekening te reproduceren die u van een API hebt ontvangen.
Hoe berekent u een HMAC
-
1
Plak het bericht
De precieze bytes die moeten worden ondertekend: een webhook-payload, een canoniek verzoek of een willekeurige tekenreeks.
-
2
Voer de geheime sleutel in
Kan tekst of hexadecimaal zijn. De generator vult de sleutel aan of hasht deze tot de blokgrootte volgens de RFC.
-
3
Kies het hash-algoritme
SHA-256 is de standaardoptie; kies voor SHA-1, SHA-384, SHA-512 of MD5 voor compatibiliteit met oudere systemen.
-
4
Kopieer de handtekening
De uitvoer is in kleine letters hexadecimal en kan rechtstreeks in een webhookconfiguratie of een autorisatieheader worden geplakt.
De werking van HMAC
HMAC omvat een eenvoudige hashfunctie in een sleutelgebaseerde constructie, zodat de signatuur niet kan worden vervalst zonder de sleutel.
Het RFC 2104-recept
HMAC(k, m) = H((k' ⊕ opad) ∥ H((k' ⊕ ipad) ∥ m))
waarbij k' de sleutel is die is gepaddeerd naar de grootte van het hashblok, en opad = 0x5c repeated en ipad = 0x36 repeated.
Keuze van het algoritme
| Algoritme | Blokgrootte | Uitvoerlengte | Aanbevolen voor |
|---|---|---|---|
| HMAC-SHA-256 | 64 bytes | 32 bytes | Moderne standaard, voor het ondertekenen van webhooks |
| HMAC-SHA-384 | 128 bytes | 48 bytes | API-signering met hogere beveiliging |
| HMAC-SHA-512 | 128 bytes | 64 bytes | Langlevende tokens |
| HMAC-SHA-1 | 64 bytes | 20 bytes | Legacy (AWS S3 v2, OAuth 1.0) |
| HMAC-MD5 | 64 bytes | 16 bytes | Enkel beschikbaar voor oudere versies; vermijd bij nieuwe toepassingen |
Waar HMAC wordt weergegeven
- GitHub-, Stripe- en Shopify-webhooks: header
X-Hub-Signature-256,Stripe-Signature, etc. - AWS Signature v4: een keten van HMAC-SHA256 over het canonieke verzoek.
- JWT HS256: de token-signatuur is
HMAC-SHA-256(header.payload, secret). - Token voor wachtwoordherstelling: HMAC gebaseerd op user_id, vervaldatum en een sitegeheim.
Veelvoorkomende fouten
- Een hex-aangegeven sleutel als tekst overdragen in plaats van deze eerst te decoderen naar bytes.
- Onjuiste payload-bytes ondertekenen: sommige webhooks ondertekenen het ruwe verzoeklichaam inclusief witruimte, andere ondertekenen een canonieke vorm.
- Gebruik
==in JavaScript of Python om handtekeningen te vergelijken; gebruik altijd een tijdbeveiligde vergelijking om tijdgebaseerde aanvallen te voorkomen.
Veelgestelde vragen
Bijna altijd doordat de berichtbytes verschillen. Het ondertekenen van het uit JSON geparseerde lichaam leidt tot wijzigingen in de witruimte; onderteken daarom het ruwe verzoeklichaam. Controleer ook of de sleutel aan beide kanten op dezelfde manier wordt gedecodeerd (hexadecimaal versus ruwe bytes).
Ja. Als de sleutel korter is dan de grootte van het hashblok, wordt deze met nul aangevuld; als hij langer is, wordt hij eerst gehash. RFC 2104 beveelt sleutels aan die minstens even lang zijn als de uitvoer (32 bytes voor SHA-256).
HMAC blijft bestand tegen bekende MD5-collisionaanvallen, omdat deze aanvallen niet worden toegepast tijdens de constructie van HMAC. Gebruik echter HMAC-SHA-256 voor alle nieuwe code; tools en auditors verwachten dit.
Ja. Het bericht en de geheime sleutel worden via een versleutelde HTTPS-verbinding naar onze server gestuurd zodat het HMAC kan worden berekend. Ze worden alleen voor de berekening gebruikt en worden niet opgeslagen of gelogd.
Gerelateerde tools
Getal-naar-letter-code
Zet getallen om naar letters en terug met de code A=1, B=2 (A1Z26) voor puzzels, raadsels en aanwijzingen in escaperooms.
SSH-sleutelgenerator
Genereer een RSA-SSH-sleutelpaar (2048, 3072 of 4096 bits) volledig in je browser. Noch de privésleutel, noch de openbare sleutel verlaat je apparaat. Voeg een opmerking toe en download beide.
SHA256-generator
Genereer SHA-256-hashen van elke tekst. Het resultaat is een uitvoering in hexformat met 64 karakters; dezelfde algoritme wordt gebruikt voor Bitcoin-adressen, TLS-certificaten en JWT-signatuur.
SHA512-hashgenerator
Genereer de SHA-512-hash van elke tekst als een hexadecimale reeks van 128 tekens in kleine letters. Gratis en snel, ideaal voor checksums en integriteitscontroles.
SHA1-hashgenerator
Genereer SHA-1-hashes (40 hexadecimale tekens) uit elke tekstinvoer. Handig voor traditionele controlesummen, Git-object-ID's en niet-beveiligingsgerelateerde integriteitscontroles.
SHA256-hashgenerator
Genereer een SHA-256-hash uit willekeurige tekst. Deterministische hexadecimale uitvoer van 64 kleine letters, het algoritme achter Bitcoin, TLS-certificaten en JWT-handtekeningen.
Tool beschikbaar in andere talen
- HMACジェネレーター [JA]
- HMAC-generator [SV]
- HMAC Generator [ID]
- مولّد HMAC [AR]
- Gerador de HMAC [PT]
- HMAC 생성기 [KO]
- Générateur HMAC [FR]
- Generator HMAC [PL]
- Bộ tạo HMAC [VI]
- HMAC-Generator [DE]
- ตัวสร้าง HMAC [TH]
- Generador de HMAC [ES]
- Generatore HMAC [IT]
- Генератор HMAC [RU]
- HMAC Jeneratörü [TR]
- HMAC 生成器 [ZH]
- HMAC Generator [EN]