Ga naar inhoud
TextArray
100% lokaal

HMAC-generator

Bereken HMAC-SHA256-, SHA-1-, SHA-384- of SHA-512-handtekeningen met een geheime sleutel.

Invoer
Uitvoer

HMAC-generator

Een HMAC is een gecodeerde hash: het bericht en een geheime sleutel gaan samen in, en alleen iemand die dezelfde sleutel heeft, kan het resultaat reproduceren of verifiëren. Dat is wat API-providers gebruiken om verzoeken te ondertekenen en wat webhook-afzenders zoals betalingsplatforms en codehostingdiensten aan elke levering koppelen, zodat de ontvanger kan bewijzen dat de lading echt van hen afkomstig is en tijdens de verzending niet is gewijzigd.

Voer de geheime sleutel in, kies het algoritme dat de andere partij gebruikt (SHA-256 is de overweldigende standaard) en plak het bericht. De samenvatting verschijnt als kleine hexadecimale letter of als Base64, passend bij de twee formaten waarin handtekeningen worden uitgewisseld. Schakel de HMAC per regel in om elke invoerregel afzonderlijk te ondertekenen, wat past bij een kolom met tokens of ID's. Ontwikkelaars bereiken dit tijdens het debuggen van een webhook-handler die handtekeningen afwijst, het reproduceren van een documentatievoorbeeld of het genereren van een testvector voor een unit-test.

Zowel de sleutel als het bericht worden opgevat als UTF-8-bytes, precies zoals de meeste server-SDK's dat doen. Als uw resultaat niet overeenkomt met de andere kant, is de oorzaak bijna altijd bytes en geen wiskunde: een afsluitende nieuwe regel in de payload, CRLF-regeleinden, hex-uitvoer vergeleken met Base64, of een sleutel die de service Base64- of hex-gecodeerd levert en verwacht dat deze vóór gebruik wordt gedecodeerd.

Het sleutelveld is gemaskeerd en wordt met opzet nooit naar de opslag van uw browser geschreven. Alles loopt lokaal via de ingebouwde WebCrypto van de browser. Als u een ondertekeningsgeheim in een online HMAC-tool plakt, wordt het normaal gesproken aan die server doorgegeven, en hier verlaat het uw apparaat nooit.

FAQ

Waar wordt een HMAC voor gebruikt?
Bewijzen dat een bericht afkomstig is van iemand die het gedeelde geheim bewaart en onderweg niet is gewijzigd. Typische toepassingen: het ondertekenen van API-verzoeken, het verifiëren van webhookleveringen van betalings- en hostingplatforms en het ondertekenen van tokens. De ontvanger berekent de HMAC opnieuw met dezelfde sleutel en vergelijkt.
Waarin verschilt HMAC van gewone hasj?
Een gewone SHA-256 van een bericht kan door iedereen worden berekend, dus het bewijst niets over de afzender. Een HMAC mengt een geheime sleutel in de berekening op een manier die niet kan worden geknoeid. Zonder de sleutel kun je geen geldige handtekening vervalsen, noch een geldige handtekening verifiëren. Dat is ook de reden waarom HMAC-SHA1 in de praktijk acceptabel blijft, ook al is gewone SHA-1 kapot vanwege botsingen, hoewel nieuwe ontwerpen nog steeds voor SHA-256 zouden moeten kiezen.
Waarom komt mijn HMAC niet overeen met degene die de server verzendt?
Bijna altijd verschillen de bytes. Controleer op een afsluitende nieuwe regel in de payload, CRLF- versus LF-regeleinden, hex vergeleken met Base64 en het sleutelformaat - veel services geven u de geheime Base64- of hex-gecodeerde en verwachten de gedecodeerde bytes als de sleutel. Deze tool gebruikt de sleutel precies zoals getypt, als UTF-8.
Kan iemand mijn sleutel ophalen bij een HMAC?
Geen enkele praktische aanval haalt de sleutel uit samenvattingen terug. Maar iedereen die de sleutel bezit, kan willekeurige berichten ondertekenen, dus behandel ondertekeningsgeheimen als wachtwoorden: roteer een webhookgeheim als het mogelijk is gelekt, en leg het nooit vast in een repository.
Worden mijn sleutel en tekst ergens geüpload?
Nee. De HMAC wordt berekend door de ingebouwde WebCrypto van uw browser, het sleutelveld wordt nooit naar de opslag geschreven en noch de sleutel, noch de tekst verlaat ooit uw apparaat.