logo
GeekFormat

HMAC Generator & Verificateur

Hashi-algoritme

De aanbevolen sleutellengte komt overeen met de lengte van de Hash-uitvoer: SHA-1=20 bytes, SHA-256=32 bytes, SHA-384=48 bytes, SHA-512=64 bytes

Berichtinhoud0 Tekens
HMAC Handtekening (Hex)
Wachten op invoer...

Opmerkingen

  • HMAC Genereert handtekeningen op basis van sleutel- en Hashi-algoritmen voor authenticatie van bron en integriteit
  • Ondersteuning SHA-1 / SHA-256 / SHA-384 / SHA-512
  • Genereren en valideren van zowel lokaal in browsers, zonder het uploaden van gegevens
  • Validatie maakt gebruik van vaste lengte bytes om tijdsreeksenverschillen te verminderen

Genereer en verifieer HMAC-handtekeningen online gratis, ondersteunt veelvoorkomende SHA-algoritmen. Ideaal voor API-handtekeningen, webhook-verificatie en beveiligingsdebugging.

Gerelateerde aanbevelingen

Toepassingsgevallen

  • Stripe webhook-ontwikkeling: Debug Stripe-betalingscallbacks, verifieer `Stripe-Signature` header correctheid
  • GitHub webhook-integratie: Verifieer `X-Hub-Signature-256` handtekening voor GitHub Push en Pull Request gebeurtenissen
  • Shopify order-synchronisatie: Verifieer `X-Shopify-Hmac-Sha256` handtekening voor Shopify order-update webhooks
  • Slack bot-handtekeningen: Verifieer `X-Slack-Signature` voor Slack event callbacks
  • JWT-ontwikkeling debugging: Onderteken JWT's met HS256, verifieer token-geldigheid
  • API-verzoekondertekening: Implementeer AWS Signature V4 of aangepaste API-ondertekeningsschema's

Functies

  • Ondersteuning voor meerdere algoritmen: HMAC-SHA256/384/512, SHA1, MD5 — dekt moderne API's en legacy-systemen
  • Webhook-handtekeningverificatie: Ingebouwde ondersteuning voor Stripe/GitHub/Shopify/Slack handtekeningformaten met automatisch parsen
  • Drie uitvoerformaten: Hex / Base64 / Base64URL — voldoet aan elke API- of platformvereiste
  • Realtime generatie: Automatisch berekenen bij invoerwijziging met 300ms debounce, geen knopklik nodig
  • Handtekeningverificatiemodus: Plak verwachte handtekening om te vergelijken, realtime matchresultaatweergave
  • Sleutellengtedetectie: Realtime bewaking van sleutelsterkte met waarschuwingen voor korte sleutels
  • Browsergebaseerde verwerking: Web Crypto API voor lokale berekening, sleutels nooit geüpload naar server
  • JWT-ondersteuning: HMAC-SHA256 uitvoer direct bruikbaar voor HS256-ondertekening

Hoe te gebruiken

  1. Selecteer algoritme: Standaard HMAC-SHA256, aanbevolen voor moderne API's
  2. Voer bericht in: Plak ruwe berichtinhoud of API-verzoekinhoud
  3. Voer sleutel in: Voer Webhook Secret of API Secret in
  4. Kies formaat: Selecteer uitvoerformaat (hex voor Stripe, Base64URL voor JWT)
  5. Verifieer handtekening: Schakel naar verificatiemodus, plak verwachte handtekening om te vergelijken

Veelgestelde vragen

Wat is het verschil tussen HMAC en gewoon hashen?

Gewone hashfuncties (zoals SHA256) berekenen alleen een digest van het bericht zelf — iedereen kan ze berekenen. HMAC introduceert een geheime sleutel in het hashproces, zodat alleen partijen met de sleutel een geldige handtekening kunnen genereren of verifiëren. HMAC garandeert zowel berichtintegriteit als authenticiteit, terwijl gewone hashes alleen integriteit verifiëren.

Hoe verifieer ik Stripe/GitHub/Shopify webhook-handtekeningen?

Verschillende platforms formatteren hun handtekeningen anders: Stripe gebruikt de `Stripe-Signature` header met formaat `t=timestamp,v1=hex_signature`, waarbij de string `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 directe verificatie van deze veelvoorkomende formaten.

Wat is het verschil tussen Hex, Base64 en Base64URL uitvoer?

Hex is hexadecimaal formaat (0-9, A-F), leesbaar voor mensen, geweldig voor debugging. Base64 is een 64-karakter codering die compacter is, ideaal voor het insluiten in JSON. Base64URL is de URL-veilige versie (vervangt +/ door -_), gebruikt in JWT-headers en URL-parameters.

Welk HMAC-algoritme moet ik gebruiken?

**HMAC-SHA256 wordt aanbevolen**: het is de moderne standaard voor API's en webhooks (gebruikt door Stripe, GitHub, Shopify, Slack), met 32-byte uitvoer en universele ondersteuning. SHA-512 biedt hogere veiligheid maar langere uitvoer (64 bytes). SHA1 is alleen voor legacy-systemen. MD5 is verouderd en moet alleen worden gebruikt voor zeer oude API's.

Wat zijn de vereisten voor sleutellengte?

Langere sleutels zijn veiliger. Minimaal 16 tekens (128 bits) aanbevolen, 32+ tekens voor productie. De tool bewaakt de sleutellengte en waarschuwt als deze te kort is. Gebruik cryptografisch veilige willekeurige nummergeneratoren voor sleutels, geen eenvoudige wachtwoorden of voorspelbare strings.

Waarom toont handtekeningverificatie een mismatch?

Veelvoorkomende oorzaken: 1) Bericht bevat extra spaties of nieuwe regels; 2) Platform ondertekent een samengestelde string (bijv. Stripe ondertekent `timestamp.payload`); 3) Handtekening bevat een voorvoegsel dat je moet verwijderen (zoals GitHub's `sha256=`); 4) Ander algoritme gebruikt. Controleer of beide kanten identieke parameters gebruiken.

Kan HMAC worden gebruikt voor JWT-ondertekening?

Ja. JWT's HS256-algoritme is HMAC-SHA256, en HS512 is HMAC-SHA512. HMAC-SHA256 uitvoer van deze tool kan direct worden gebruikt als handtekeninginhoud voor HS256. JWT Header en Payload zijn Base64URL-gecodeerd, vervolgens ondertekend met HS256.

Is deze online HMAC-tool veilig?

Deze tool gebruikt Web Crypto API voor alle berekeningen lokaal in je browser. Sleutels en berichten worden nooit naar een server verzonden. Je kunt dit verifiëren door het Network-paneel van browser DevTools te openen — er worden geen externe verzoeken gedaan. Geschikt voor testen en ontwikkeling; voor zeer gevoelige productiesleutels, gebruik lokale offline tools.

Kunnen HMAC-handtekeningen worden vervalst?

Nee. HMAC-veiligheid hangt af van geheimhouding van de sleutel en collision-weerstand van het hash-algoritme. Bij voldoende lange en willekeurige sleutels zijn er geen bekende aanvallen die geldige HMAC-handtekeningen kunnen vervalsen. Regelmatige sleutelrotatie is een goede beveiligingspraktijk.

Wat is HMAC Generator & Verificateur?

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.