Generatore HMAC

Genera un HMAC (codice di autenticazione del messaggio basato su hash) da un testo e una chiave segreta. Il calcolatore online supporta HMAC-SHA-1, HMAC-SHA-256, HMAC-SHA-384 e HMAC-SHA-512, accetta chiavi di testo, esadecimali o Base64 e restituisce il tag in esadecimale minuscolo. Il calcolo avviene localmente nel browser.

Chiave segreta
Input
0 caratt. · 0 byte
Prova:
Hash
✓ Elaborazione locale nel browser ✓ L’input non viene inviato al server
Esempi
Messaggio vuoto
Chiave: segreto Algoritmo: hmac-sha-256 Formato chiave: text
Input (vuoto)
Output c17a6316ea2af3282f68d6633ad29eb69dde555140a405407b03333fbdb45291

Un messaggio vuoto è valido. HMAC-SHA256 genera comunque un tag hex di 64 caratteri con la chiave «segreto».

Chiave testuale
Chiave: segreto Algoritmo: hmac-sha-256 Formato chiave: text
Input Ciao mondo!
Output 9b3257925c2716c8bce5de0b61a6aa9cff3196012ab74cbb9a16a5442d6be17c

HMAC-SHA256 di «Ciao mondo!» con la chiave di testo UTF-8 «segreto».

Altro messaggio e altra chiave
Chiave: chiave Algoritmo: hmac-sha-256 Formato chiave: text
Input verifica
Output 67f4c50b8bc6ecde4d7822c14a27565172461d352d90498e45b43d0b7e409738

Modificare il messaggio o la chiave produce un tag HMAC-SHA256 completamente diverso.

Vettore di test HMAC-SHA256 della RFC 4231
Chiave: 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b Algoritmo: hmac-sha-256 Formato chiave: hex
Input Hi There
Output b0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7

Il caso di test 1 della RFC 4231 usa una chiave di 20 byte in formato hex e consente di verificare implementazioni HMAC-SHA256.

Che cos’è HMAC?

HMAC (Hash-based Message Authentication Code) combina una funzione hash crittografica con una chiave segreta. Definito nella RFC 2104, trasforma un messaggio di qualsiasi lunghezza in un tag di autenticazione di lunghezza fissa. HMAC-SHA256 è la variante moderna più diffusa; HMAC-SHA384 e HMAC-SHA512 producono tag più lunghi, mentre HMAC-SHA1 rimane in protocolli meno recenti.

Chi possiede la stessa chiave può ricalcolare HMAC e confrontare i tag. Una corrispondenza indica che il messaggio non è cambiato ed è stato creato da chi conosce il segreto condiviso. HMAC è un codice di autenticazione simmetrico, non una cifratura né una firma digitale a chiave pubblica.

Come funziona HMAC

In forma semplificata HMAC calcola H((K′ ⊕ opad) || H((K′ ⊕ ipad) || messaggio)). La chiave viene adattata alla dimensione del blocco hash e combinata con due costanti per le operazioni interna ed esterna. Così evita il problema di length extension delle costruzioni ingenue come hash(chiave || messaggio).

HMAC-SHA1 produce 20 byte (40 caratteri hex), HMAC-SHA256 32 byte (64), HMAC-SHA384 48 byte (96) e HMAC-SHA512 64 byte (128). Il generatore mostra il tag completo in esadecimale minuscolo senza troncarlo.

Come usare il generatore HMAC
  1. Inserisci il messaggio esatto.
  2. Scegli HMAC-SHA256, HMAC-SHA1, HMAC-SHA384 o HMAC-SHA512.
  3. Seleziona il formato della chiave: testo, hex o Base64.
  4. Inserisci la chiave segreta e copia il risultato esadecimale.

Il messaggio viene sempre codificato in UTF-8. In modalità testo anche la chiave usa UTF-8; hex e Base64 vengono prima decodificati in byte. Spazi, a capo, maiuscole, Unicode, algoritmo e formato della chiave cambiano il risultato.

HMAC per API, webhook e JWT

HMAC autentica spesso richieste API, payload di webhook, dati di sessione e messaggi di protocollo. La verifica ricalcola il tag sugli stessi identici byte con il segreto condiviso e usa un confronto a tempo costante. Timestamp o nonce possono impedire attacchi replay.

Segui sempre la specifica: un’API può richiedere una richiesta canonica, un webhook firmare il corpo HTTP grezzo e JWT HS256 usare Base64URL invece di hex. Questo strumento calcola HMAC sul testo inserito, ma non crea stringhe specifiche di un provider, non converte in Base64URL e non verifica automaticamente un tag esistente.

FAQ

Usa HMAC quando due parti condividono un segreto e devono rilevare modifiche intenzionali o autenticare chi conosce quel segreto. Chiunque può ricalcolare un normale SHA-256 dopo aver cambiato il messaggio. Per una verifica pubblica senza segreto condiviso serve una firma digitale.

Per HMAC-SHA256 una chiave casuale di 32 byte è una buona scelta. Generala con un sistema crittograficamente sicuro e conservala in un gestore di segreti. Evita password, frasi prevedibili, segreti riutilizzati e chiavi nel codice client.

Le chiavi HMAC sono byte, ma spesso vengono archiviate come testo hex o Base64. La modalità testo codifica in UTF-8; hex e Base64 recuperano i byte originali. “616263”, “YWJj” e “abc” sono equivalenti solo con i rispettivi formati.

Il calcolo avviene localmente tramite Web Crypto API; messaggio e chiave non vengono inviati al server per il calcolo. Se autorizzi il salvataggio delle preferenze, il campo chiave può restare nel local storage. Cancellalo insieme ai dati del sito sui dispositivi condivisi.

Usa l’algoritmo richiesto dal protocollo. HMAC-SHA256 è comune nelle nuove integrazioni; SHA384 e SHA512 sono adatti quando richiesti dalla specifica. Mantieni SHA1 solo per compatibilità.

No. HMAC è una funzione unidirezionale. Per verificarlo servono il messaggio originale e la stessa chiave: ricalcola il tag e confrontalo con quello atteso.

Scegli lo stesso algoritmo e formato di chiave, inserisci esattamente messaggio e chiave e confronta i tag. Nel codice usa un confronto di byte a tempo costante. Il calcolatore non offre un campo di verifica automatica.

Controlla algoritmo, formato e byte della chiave, codifica, maiuscole, spazi, a capo, serializzazione JSON e normalizzazione Unicode. Per API e webhook verifica anche il corpo o la stringa canonica esatti e il formato hex, Base64 o Base64URL.

HS256 usa HMAC-SHA256, ma firma header e payload codificati Base64URL e codifica la firma in Base64URL senza padding. Questo strumento restituisce hex e non crea un JWT completo.
Strumenti correlati