Vai al contenuto
TextArray
100% locale

Generatore HMAC

Calcola le firme HMAC-SHA256, SHA-1, SHA-384 o SHA-512 con una chiave segreta.

Ingresso

Generatore HMAC

Un HMAC è un hash con chiave: il messaggio e una chiave segreta entrano insieme e solo qualcuno che possiede la stessa chiave può riprodurre o verificare il risultato. Questo è ciò che i fornitori di API utilizzano per firmare le richieste e ciò che i mittenti di webhook, come le piattaforme di pagamento e i servizi di code hosting, allegano a ogni consegna, in modo che il destinatario possa dimostrare che il carico utile proviene realmente da loro e non è stato alterato durante il trasporto.

Inserisci la chiave segreta, scegli l'algoritmo utilizzato dall'altra parte (SHA-256 è quello predefinito) e incolla il messaggio. Il digest appare come esadecimale minuscolo o come Base64, corrispondente ai due formati in cui vengono scambiate le firme. Attiva l'HMAC per riga per firmare ciascuna riga di input separatamente, che si adatta a una colonna di token o ID. Gli sviluppatori raggiungono questo obiettivo durante il debug di un gestore webhook che rifiuta le firme, riproducendo un esempio di documentazione o generando un vettore di test per un test unitario.

Sia la chiave che il messaggio vengono considerati byte UTF-8, esattamente come fanno la maggior parte degli SDK del server. Quando il risultato non corrisponde all'altro lato, la causa sono quasi sempre i byte, non la matematica: una nuova riga finale nel payload, terminazioni di riga CRLF, output esadecimale rispetto a Base64 o una chiave che il servizio fornisce con codifica Base64 o esadecimale e si aspetta decodificata prima dell'uso.

Il campo chiave è mascherato e non viene mai scritto deliberatamente nella memoria del tuo browser. Tutto viene eseguito localmente tramite WebCrypto integrato nel browser: incollare un segreto di firma in uno strumento HMAC online normalmente lo trasmette a quel server e qui non lascia mai il tuo dispositivo.

FAQ

A cosa serve un HMAC?
Dimostrando che un messaggio proviene da qualcuno che detiene il segreto condiviso e non è stato modificato lungo il percorso. Usi tipici: firma di richieste API, verifica delle consegne di webhook da piattaforme di pagamento e hosting e firma di token. Il ricevitore ricalcola l'HMAC con la stessa chiave e confronta.
In cosa differisce l'HMAC da un semplice hash?
Un semplice SHA-256 di un messaggio può essere calcolato da chiunque, quindi non prova nulla sul mittente. Un HMAC inserisce una chiave segreta nel calcolo in modo da resistere alle manomissioni: senza la chiave non è possibile né falsificare una firma valida né verificarne una. Questo è anche il motivo per cui HMAC-SHA1 rimane accettabile nella pratica anche se il semplice SHA-1 non funziona in caso di collisioni, sebbene i nuovi progetti dovrebbero comunque scegliere SHA-256.
Perché il mio HMAC non corrisponde a quello inviato dal server?
Quasi sempre i byte differiscono. Controlla la presenza di una nuova riga finale nel payload, delle terminazioni di riga CRLF rispetto a quelle LF, del confronto esadecimale con Base64 e del formato della chiave: molti servizi ti consegnano la codifica Base64 o esadecimale segreta e si aspettano i byte decodificati come chiave. Questo strumento utilizza la chiave esattamente come digitata, come UTF-8.
Qualcuno può recuperare la mia chiave da un HMAC?
Nessun attacco pratico recupera la chiave dai digest. Ma chiunque abbia la chiave può firmare messaggi arbitrari, quindi considera i segreti della firma come password: ruota un segreto del webhook se potrebbe essere trapelato e non eseguirne mai il commit in un repository.
La mia chiave e il mio testo vengono caricati da qualche parte?
No. L'HMAC viene calcolato dal WebCrypto integrato nel tuo browser, il campo chiave non viene mai scritto nell'archivio e né la chiave né il testo lasciano mai il tuo dispositivo.