Generatore HMAC
HMAC è l’algoritmo alla base della maggior parte dei webhook firmati, delle intestazioni AWS Signature v4 e dei token JWT HS256. Inserisci un messaggio e una chiave segreta, scegli una famiglia di hash, e questo generatore produce l’HMAC esattamente come specificato dalla RFC 2104, utile per verificare cosa sta per inviare il tuo backend o riprodurre una firma ricevuta da un’API.
Come calcolare un HMAC
-
1
Incolla il messaggio
I byte esatti da firmare, un payload webhook, una richiesta canonica o qualsiasi stringa.
-
2
Inserisci la chiave segreta
Può essere testo o esadecimale. Il generatore lo riempie o lo hash per la dimensione del blocco secondo la RFC.
-
3
Scegli l'algoritmo di hash
SHA-256 è il predefinito; scegli SHA-1, SHA-384, SHA-512 o MD5 per compatibilità legacy.
-
4
Copia la firma
L'output è esadecimale minuscolo, pronto da incollare in una configurazione webhook o in un'intestazione di autorizzazione.
HMAC sotto il cofano
HMAC avvolge una funzione hash semplice in una costruzione con chiave in modo che la firma non possa essere falsificata senza la chiave.
La ricetta RFC 2104
HMAC(k, m) = H((k' ⊕ opad) ∥ H((k' ⊕ ipad) ∥ m))
dove k' è la chiave riempita alla dimensione del blocco hash, opad = 0x5c ripetuto e ipad = 0x36 ripetuto.
Scelte dell’algoritmo
| Algoritmo | Dimensione blocco | Lunghezza output | Raccomandato per |
|---|---|---|---|
| HMAC-SHA-256 | 64 byte | 32 byte | Predefinito moderno, firma webhook |
| HMAC-SHA-384 | 128 byte | 48 byte | Firma API ad alta sicurezza |
| HMAC-SHA-512 | 128 byte | 64 byte | Token a lungo termine |
| HMAC-SHA-1 | 64 byte | 20 byte | Legacy (AWS S3 v2, OAuth 1.0) |
| HMAC-MD5 | 64 byte | 16 byte | Solo legacy; evitare per nuovi lavori |
Dove appare HMAC
- Webhook di GitHub, Stripe, Shopify: intestazione
X-Hub-Signature-256,Stripe-Signature, ecc. - AWS Signature v4: una catena di HMAC-SHA256 sulla richiesta canonica.
- JWT HS256: la firma del token è
HMAC-SHA-256(header.payload, secret). - Token di reimpostazione password: HMAC su user_id + scadenza + un segreto del sito.
Errori comuni
- Passare una chiave codificata in esadecimale come testo invece di decodificarla in byte prima.
- Firmare i byte del payload sbagliato: alcuni webhook firmano il corpo della richiesta grezza includendo spazi bianchi, altri firmano una forma canonica.
- Usare
==in JavaScript o Python per confrontare le firme; usa sempre un confronto sicuro rispetto al tempo per resistere agli attacchi di timing.
Domande frequenti
Quasi sempre perché i byte del messaggio differiscono. Firmare il corpo JSON analizzato introduce cambiamenti negli spazi bianchi; firma il corpo della richiesta grezza. Verifica anche che la chiave sia decodificata allo stesso modo (esadecimale vs byte grezzi) su entrambi i lati.
Sì. Se la chiave è più corta della dimensione del blocco hash, viene riempita con zeri; se è più lunga, viene prima hashata. La RFC 2104 raccomanda chiavi lunghe almeno quanto l’output (32 byte per SHA-256).
HMAC è ancora resistente agli attacchi di collisione MD5 noti perché l’attacco non si trasferisce alla costruzione HMAC. Tuttavia, usa HMAC-SHA-256 per qualsiasi nuovo codice, gli strumenti e gli auditor se lo aspettano.
Sì. Il messaggio e la chiave segreta vengono inviati al nostro server tramite una connessione HTTPS crittografata per calcolare l’HMAC. Vengono usati solo per il calcolo e non vengono memorizzati né registrati.
Strumenti correlati
Generatore CSR
Genera una richiesta di firma del certificato codificata in PEM e la chiave privata RSA corrispondente. Specifica il nome comune, i campi dell'organizzazione e la dimensione della chiave (2048, 3072 o 4096 bit).
Codificatore di file Base64
Codifica qualsiasi file (PDF, ZIP, immagine, eseguibile) in testo Base64 per l'inserimento in JSON, email, YAML o URI di dati. Funziona localmente, senza upload.
Identificatore di Crittografia
Incolla un testo cifrato o un hash e l'identificatore suggerisce algoritmi o codifiche probabili: MD5, SHA, bcrypt, AES, RSA, Base64 e altro.
Verificatore di checksum
Calcola il checksum MD5, SHA-1, SHA-256, SHA-384, SHA-512 o CRC32 di qualsiasi testo e confrontalo con un valore atteso per ottenere un verdetto chiaro di corrispondenza o divergenza.
Identificatore di Cifrari
Incolla il testo cifrato e l'identificatore suggerisce i probabili schemi di codifica/cifratura: Base64, esadecimale, binario, Morse, Caesar o sostituzione, JWT e hash comuni.
Generatore di certificati SSL
Genera un certificato SSL/TLS autofirmato e una chiave privata RSA interamente nel browser. Common Name, SAN e validità personalizzati, esportati in PEM.
Strumento disponibile in altre lingue
- HMAC Generator [ID]
- HMACジェネレーター [JA]
- ตัวสร้าง HMAC [TH]
- Bộ tạo HMAC [VI]
- HMAC-Generator [DE]
- HMAC 생성기 [KO]
- Generator HMAC [PL]
- Gerador de HMAC [PT]
- Generador de HMAC [ES]
- HMAC-generator [SV]
- مولّد HMAC [AR]
- Générateur HMAC [FR]
- HMAC-generator [NL]
- Генератор HMAC [RU]
- HMAC Jeneratörü [TR]
- HMAC 生成器 [ZH]
- HMAC Generator [EN]