Sări la conținut
TextArray
Complet local

Generator HMAC

Calculați semnăturile HMAC-SHA256, SHA-1, SHA-384 sau SHA-512 cu o cheie secretă.

Intrare
Ieșire

Generator HMAC

Un HMAC este un hash cu cheie: mesajul și o cheie secretă merg împreună și numai cineva care deține aceeași cheie poate reproduce sau verifica rezultatul. Acesta este ceea ce furnizorii de API-uri folosesc pentru a semna cererile și ceea ce expeditorii webhook, cum ar fi platformele de plată și serviciile de găzduire a codurilor, atașează la fiecare livrare, astfel încât destinatarul să poată dovedi că sarcina utilă a venit cu adevărat de la ei și nu a fost modificată în tranzit.

Introduceți cheia secretă, alegeți algoritmul pe care îl folosește cealaltă parte - SHA-256 este implicit copleșitor - și lipiți mesajul. Rezumatul apare ca hex minuscule sau ca Base64, potrivind cele două formate în care sunt schimbate semnăturile. Porniți HMAC pe linie pentru a semna fiecare linie de intrare separat, ceea ce se potrivește unei coloane de jetoane sau ID-uri. Dezvoltatorii caută acest lucru în timp ce depanează un handler webhook care respinge semnăturile, reproduce un exemplu de documentație sau generează un vector de testare pentru un test unitar.

Atât cheia, cât și mesajul sunt luate ca UTF-8 octeți, exact așa cum fac majoritatea SDK-urilor de server. Când rezultatul dvs. nu se potrivește cu cealaltă parte, cauza sunt aproape întotdeauna octeți, nu matematică: o linie nouă în sarcină utilă, sfârșit de linie CRLF, ieșire hexadecimală în comparație cu Base64 sau o cheie pe care serviciul o furnizează codificată Base64 sau hex și se așteaptă să fie decodificată înainte de utilizare.

Câmpul cheie este mascat și nu este niciodată scris în mod deliberat în stocarea browserului dvs. Totul rulează local prin WebCrypto încorporat în browser - inserarea unui secret de semnare într-un instrument HMAC online îl predă în mod normal către acel server și aici nu părăsește niciodată dispozitivul.

FAQ

Pentru ce este folosit un HMAC?
Demonstrarea că un mesaj vine de la cineva care deține secretul partajat și nu a fost modificat pe parcurs. Utilizări tipice: semnarea solicitărilor API, verificarea livrărilor de webhook de pe platformele de plată și găzduire și semnarea token-urilor. Receptorul recalculează HMAC-ul cu aceeași cheie și compară.
Cum este HMAC diferit de un hash simplu?
Un simplu SHA-256 al unui mesaj poate fi calculat de oricine, deci nu dovedește nimic despre expeditor. Un HMAC combină o cheie secretă în calcul într-un mod care rezistă la falsificare - fără cheie nu puteți falsifica o semnătură validă și nici nu puteți verifica una. De aceea, HMAC-SHA1 rămâne acceptabil în practică, chiar dacă SHA-1 simplu este rupt pentru coliziuni, deși noile modele ar trebui să aleagă SHA-256.
De ce HMAC-ul meu nu se potrivește cu cel pe care îl trimite serverul?
Aproape întotdeauna octeții diferă. Verificați o nouă linie finală în sarcina utilă, sfârșiturile de linie CRLF versus LF, hex în comparație cu Base64 și formatul cheii - multe servicii vă înmânează secretul Base64 sau codificat hex și așteptați octeții decodați ca cheie. Acest instrument folosește cheia exact așa cum a fost introdusă, ca UTF-8.
Poate cineva să-mi recupereze cheia de la un HMAC?
Niciun atac practic nu recuperează cheia din rezumate. Dar oricine deține cheia poate semna mesaje arbitrare, așa că tratați secretele de semnare ca și parole: rotiți un secret webhook dacă s-ar fi putut scurge și nu îl trimiteți niciodată într-un depozit.
Cheia și textul meu sunt încărcate de undeva?
Nu. HMAC este calculat de WebCrypto încorporat în browser, câmpul cheie nu este niciodată scris în stocare și nici cheia, nici textul nu părăsesc dispozitivul.