HMAC (Hash-based Message Authentication Code) is een veelgebruikte berichtauthenticatietechnologie gedefinieerd in RFC 2104. HMAC verwerkt een sleutel samen met een bericht via een hashfunctie om een handtekening met vaste lengte te produceren. In tegenstelling tot gewone hashes vereist HMAC dat je de sleutel kent om een handtekening te genereren of verifiëren, wat zowel berichtintegriteit als authenticiteit garandeert.
**HMAC is de fundering van moderne API-beveiliging**. Stripe, GitHub, Shopify, Slack en Twilio gebruiken HMAC-SHA256 om webhook-gebeurtenissen te ondertekenen, zodat verzoeken daadwerkelijk van het platform afkomstig zijn. AWS gebruikt HMAC-SHA256 voor Signature V4 verzoekondertekening. JWT's HS256-algoritme is in wezen HMAC-SHA256. HMAC begrijpen is de eerste stap naar het beheersen van API-beveiliging.
**Verschillende platforms hebben verschillende handtekeningformaten**: Stripe's formaat is `t=timestamp,v1=hex_signature`, waarbij `timestamp.payload` wordt ondertekend; GitHub gebruikt `X-Hub-Signature-256` met formaat `sha256=hex_signature`; Shopify gebruikt `X-Shopify-Hmac-Sha256` met Base64-gecodeerde waarde. Deze tool ondersteunt automatisch parsen en verifiëren van deze veelvoorkomende formaten.
**Waarom mislukt handtekeningverificatie?** De meest voorkomende reden is een mismatch in berichtformaat: het platform ondertekent mogelijk `timestamp.payload` in plaats van de ruwe berichtinhoud; of het bericht bevat extra nieuwe regels; of de handtekening bevat een voorvoegsel (zoals `sha256=`) dat verwijderd moet worden. Controleer de platformdocumentatie zorgvuldig en vergelijk met de ruwe hexadecimale waarde.
Deze tool gebruikt de browser's native **Web Crypto API** (SubtleCrypto) voor HMAC-berekeningen — dezelfde cryptografische bibliotheek die HTTPS en TLS aandrijft. Alle berekeningen gebeuren lokaal; sleutels en berichten worden nooit naar een server verzonden. Open het Network-paneel van browser DevTools om te verifiëren dat er geen externe verzoeken worden gedaan.