ESC

Generatore HMAC

L'output HMAC apparira qui...

Confronta HMAC

Tutta l'elaborazione avviene nel tuo browser usando la Web Crypto API. Nessun dato viene inviato a nessun server.

Esempi di Utilizzo

Autenticazione API

Genera firme HMAC per l'autenticazione di richieste API, comunemente usate nelle API REST.

Verifica Webhook

Verifica i payload webhook confrontando le firme HMAC da servizi come Stripe o GitHub.

Firma JWT

Crea firme HMAC-SHA256 per la firma del payload JSON Web Token (JWT).

Funzionalita

Algoritmi Multipli

Supporto per HMAC-SHA256, HMAC-SHA384, HMAC-SHA512 e HMAC-SHA1

Confronto HMAC

Confronta l'HMAC generato con un valore atteso per verificare l'integrita del messaggio

Formati Multipli

Output in esadecimale o codifica Base64 per diverse esigenze di integrazione

Web Crypto API

Usa la Web Crypto API nativa per la generazione HMAC sicura nel browser

Come Usare?

1

Inserisci Messaggio e Chiave

Digita o incolla il tuo messaggio e inserisci la tua chiave segreta.

2

Seleziona Algoritmo

Scegli l'algoritmo HMAC (SHA-256, SHA-384, SHA-512 o SHA-1) e il formato di output.

3

Genera e Copia

Clicca su Genera HMAC e copia il risultato.

Domande Frequenti

HMAC (Hash-based Message Authentication Code) combina una funzione hash crittografica con una chiave segreta per produrre una firma. Dimostra sia l'integrita (il messaggio non e stato modificato) che l'autenticita (il mittente conosce la chiave segreta). Senza la chiave, nessuno puo falsificare un HMAC valido, rendendolo molto piu robusto di un semplice hash per scopi di autenticazione.

Un hash SHA-256 di "hello" e sempre lo stesso: chiunque puo calcolarlo. Un HMAC-SHA256 di "hello" produce un risultato diverso per ogni chiave segreta. L'hashing semplice fornisce integrita (rileva la manomissione). HMAC fornisce integrita piu autenticazione (prova chi ha firmato). Ecco perche le API usano HMAC per la firma delle richieste, non SHA-256 semplice.

HMAC-SHA256 e lo standard del settore e quello usato dalla maggior parte dei servizi: AWS Signature Version 4, webhook Stripe, webhook GitHub, webhook Shopify. HMAC-SHA512 fornisce un margine di sicurezza extra ed e piu veloce di SHA-256 su hardware a 64 bit. Evita HMAC-SHA1 per i nuovi progetti; usalo solo per l'integrazione con sistemi legacy che lo richiedono.

Entrambi rappresentano lo stesso valore HMAC in codifiche diverse. Hex (esadecimale) produce 64 caratteri per HMAC-SHA256, piu facile da leggere e confrontare manualmente. Base64 produce 44 caratteri, piu compatto, comunemente usato negli header HTTP Authorization, firme JWT e header di richieste API. Verifica quale formato si aspetta il tuo servizio di destinazione prima di generare.

Quando ricevi un webhook da Stripe, il payload viene con un header X-Stripe-Signature contenente un HMAC-SHA256 del corpo grezzo, firmato con la chiave segreta del tuo endpoint. Per verificare: calcola l'HMAC-SHA256 del corpo grezzo della richiesta usando il tuo segreto, poi confronta con il valore dell'header. Se corrispondono, il webhook e autentico. GitHub usa X-Hub-Signature-256 nello stesso modo. Questo strumento ti permette di calcolare e verificare queste firme senza scrivere codice.

Per HMAC-SHA256, la lunghezza della chiave raccomandata e di almeno 32 byte (256 bit), corrispondente alla dimensione dell'output hash. Chiavi piu corte riducono la sicurezza; chiavi piu lunghe vanno bene. Non usare mai stringhe memorabili come chiavi, sono troppo prevedibili. Genera chiavi con un RNG crittograficamente sicuro e conservale in variabili d'ambiente o un gestore di segreti, mai nel codice sorgente.

Genera un HMAC, poi incolla un valore HMAC atteso nel campo Confronta. Lo strumento confronta i due valori e riporta se corrispondono. Utile per verificare le firme dei webhook: calcola l'HMAC atteso dal payload ricevuto e dalla tua chiave, poi confronta con la firma nell'header della richiesta. Una corrispondenza conferma che il webhook e autentico.

Mai. Tutta la generazione HMAC usa la Web Crypto API (window.crypto.subtle.sign), che gira completamente nel tuo browser. La tua chiave, messaggio e output HMAC non vengono mai trasmessi ad alcun server. Puoi disconnetterti da internet e lo strumento funziona in modo identico.

Cos'e HMAC?

HMAC sta per Codice di Autenticazione Messaggio basato su Hash. Combina una funzione hash crittografica (come SHA-256) con una chiave segreta per produrre una firma che dimostra sia l'integrita che l'autenticita di un messaggio. A differenza di un hash semplice, HMAC garantisce che solo qualcuno che conosce la chiave segreta avrebbe potuto generare il codice - ecco perche e la spina dorsale dell'autenticazione API, della verifica webhook e della firma JWT.

Dove troverai HMAC nella pratica

Se hai integrato con Stripe, GitHub o AWS, hai usato HMAC. Stripe firma i payload dei webhook con HMAC-SHA256 cosi puoi verificare che vengano davvero da Stripe. AWS usa HMAC-SHA256 nella Signature Version 4 per firmare le richieste API. I JWT con algoritmo HS256 sono letteralmente HMAC-SHA256. Questo strumento ti permette di generare e verificare queste firme senza scrivere codice.

HMAC vs hash semplice

Un hash SHA-256 di "hello" e sempre lo stesso indipendentemente da chi l'ha calcolato. Un HMAC-SHA256 di "hello" e diverso per ogni chiave segreta - dimostra quindi che il messaggio non e stato alterato E che e stato creato da qualcuno che conosce la chiave. Questa e la differenza critica: l'hash da integrita, HMAC da integrita piu autenticazione.

Scegliere l'algoritmo giusto

HMAC-SHA256 e lo standard di settore e quello che dovresti usare salvo ragioni specifiche. HMAC-SHA384 e HMAC-SHA512 producono output piu lunghi per margini di sicurezza superiori. HMAC-SHA1 e supportato per retrocompatibilita ma non dovrebbe essere usato in nuove implementazioni.

Sicurezza e privacy

Questo strumento gira interamente nel tuo browser usando la Web Crypto API - la stessa implementazione crittografica che gestisce TLS. La tua chiave segreta non tocca mai un server. Puoi verificarlo usando lo strumento offline.

Sicurezza e Privacy

La sicurezza dei vostri dati è la nostra priorità

Elaborazione Locale

Tutta l'elaborazione avviene nel vostro browser

Nessun Trasferimento Dati

I vostri dati non vengono inviati ai nostri server

Nessun Archiviazione Dati

Nessun dato viene memorizzato o condiviso

Crittografia SSL

Crittografia SSL per connessione sicura

Passo Successivo

Anche su MoreOnlineTools