Vai al contenuto

Generatore di HMAC

HMAC Generator

Calcola un HMAC su un messaggio con l’hash e la codifica di chiave che scegli, per verificare la firma di un webhook.

Calcola un HMAC — un digest con chiave — su un testo o su un file, con la chiave letta come testo, esadecimale o Base64. È la stessa schermata dello strumento di hash con la metà HMAC accesa, perché un HMAC è un hash con una chiave e separarli vorrebbe dire due pagine che condividono ogni comando.

🔒 Funziona interamente nel tuo browserhmacsignaturewebhookcrypto
Uscita

Ingresso

Trascina un file per calcolarne il checksum

Letto in questa scheda. Non viene caricato niente.

Il testo viene hashato come byte UTF-8, che è quello che intende qualunque altro strumento quando parla di fare l’hash di una stringa.

Digest

Incolla un checksum pubblicato: la riga che corrisponde si illumina.

Una riga per algoritmo, con il digest e un pulsante per copiarlo.
AlgoritmoDigestCopia
MD5Costruire collisioni costa poco. Va bene come checksum, non per firme né per password.
SHA-1Le collisioni sono già state dimostrate. Va bene per un checksum storico, non per cose nuove.
SHA-256
SHA-384
SHA-512
CRC-32È un codice per rilevare errori, non un hash. Due file possono ritrovarsi con lo stesso valore per caso, figurarsi apposta.

Ingresso

0 byte

Origine

casella di testo

Come si usa

  1. Accendere l’HMAC

    Compare il campo della chiave, e CRC-32 esce dalla tabella: è un checksum, non una funzione di hash, e non ha un HMAC.

  2. Dire come va letta la chiave

    È qui che gli HMAC vanno storti più spesso. Una chiave scritta `0a1b2c` è tre byte come esadecimale e sei come testo, e le due cose producono digest del tutto diversi.

  3. Confrontare con la firma ricevuta

    Va incollata nella casella di confronto; si accende la riga che corrisponde. Le firme dei webhook di Stripe, GitHub e Slack sono tutte HMAC-SHA256 su una stringa precisa, quindi azzeccare il messaggio conta quanto la chiave.

Domande frequenti

Perché il mio HMAC non coincide con quello nell’intestazione?

Di solito è il messaggio, non la chiave. La firma di un webhook si calcola su una stringa esatta — spesso il timestamp, un separatore e il corpo grezzo — e un corpo passato per un parser JSON e riserializzato è una stringa diversa. Vanno firmati i byte ricevuti.

HMAC è la stessa cosa che passare all’hash chiave e messaggio insieme?

No, ed è proprio questo il suo scopo. `hash(key + message)` è vulnerabile a un attacco di estensione della lunghezza su MD5, SHA-1 e SHA-256; la costruzione a due passaggi di HMAC, con il padding interno ed esterno, è ciò che lo elimina. Non bisogna mai costruirsene uno da sé.

La chiave esce dalla scheda?

No. Serve a importare una chiave WebCrypto in questa scheda e a nient’altro: non viene trasmessa, non viene conservata, non finisce nell’URL. Ricaricando la pagina si perde, che è il comportamento giusto per un segreto.

Quanto deve essere lunga la chiave?

Almeno quanto il digest: 32 byte per SHA-256. HMAC accetta qualunque lunghezza, ma una chiave più lunga della dimensione del blocco viene prima ridotta con un hash, e una chiave corta resta semplicemente una chiave corta: la sicurezza è l’entropia che vi si mette dentro.

Può ricevere da

Dopo

Questi accettano ciò che produce questo strumento, così il risultato può passare direttamente.