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.
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.
| Algoritmo | Digest | Copia |
|---|---|---|
| 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
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.
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.
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
Hash di un testo
Text Hash
Calcola MD5, SHA-1, SHA-256, SHA-384, SHA-512 e CRC-32 di una stringa, con uscita in maiuscolo o in Base64.
Generatore di codici TOTP
TOTP Code Generator
Trasforma un segreto TOTP nel codice a sei cifre del momento, con il conto alla rovescia, per provare una configurazione di verifica in due passaggi.
Generatore di chiavi casuali
Random Key Generator
Genera byte casuali crittografici in esadecimale, Base64 o Base64URL della lunghezza che scegli, per i segreti di un’applicazione.
Formattatore e validatore JSON
JSON Formatter & Validator
Formatta, minifica e valida il JSON, indicando riga e colonna esatte di un errore di sintassi.
Dopo
Questi accettano ciò che produce questo strumento, così il risultato può passare direttamente.
Hash di un testo
Text Hash
Calcola MD5, SHA-1, SHA-256, SHA-384, SHA-512 e CRC-32 di una stringa, con uscita in maiuscolo o in Base64.
Decodificatore di JWT
JWT Decoder
Decodifica intestazione e payload, mostra la scadenza delle claim in ora locale e verifica la firma con una chiave che fornisci tu.
Generatore di chiavi casuali
Random Key Generator
Genera byte casuali crittografici in esadecimale, Base64 o Base64URL della lunghezza che scegli, per i segreti di un’applicazione.
Codificatore e decodificatore Base64
Base64 Encoder & Decoder
Codifica e decodifica in Base64 e Base64URL testo o file, trattando correttamente l’UTF-8.
Da curl a codice
curl to Code
Converte un comando curl in fetch, axios, requests di Python, Go, PHP o PowerShell.
Conversione JSON ⇄ CSV
JSON ⇄ CSV
Appiattisce il JSON annidato in colonne o ricostruisce gli oggetti da una tabella, con i nomi di colonna a percorso puntato.