Generatore HMAC
Genera HMAC (Hash-based Message Authentication Code) utilizzando gli algoritmi SHA-256, SHA-384, SHA-512 o SHA-1 con una chiave segreta
Input
Output
Leggimi
Cos'è HMAC?
HMAC (Hash-based Message Authentication Code) è una tecnica crittografica che combina una chiave segreta con una funzione di hash per produrre un codice di autenticazione univoco. A differenza dell'hashing semplice, HMAC garantisce sia l'integrità dei dati che l'autenticità, verificando che un messaggio non sia stato manomesso e confermando l'identità del mittente.
HMAC funziona elaborando il messaggio attraverso una funzione di hash (come SHA-256) due volte, mescolata con la chiave segreta in un modo specifico. Questo approccio di doppio hashing lo rende resistente agli attacchi di estensione della lunghezza che colpiscono le funzioni di hash semplici.
Come funziona HMAC?
L'algoritmo HMAC segue questi passaggi:
- Preparazione della chiave: Se la chiave segreta è più lunga della dimensione del blocco di hash, viene prima sottoposta a hash. Se è più corta, viene riempita con zeri.
- Hash interno: La chiave viene combinata con una costante di padding interno (ipad) tramite XOR, quindi concatenata con il messaggio e sottoposta a hash.
- Hash esterno: La chiave viene combinata con una costante di padding esterno (opad) tramite XOR, quindi concatenata con il risultato dell'hash interno e sottoposta nuovamente a hash.
La formula è: HMAC(K, m) = H((K ⊕ opad) || H((K ⊕ ipad) || m))
Questa costruzione garantisce che anche se un attaccante conosce l'hash di un messaggio, non può falsificare un HMAC valido senza conoscere la chiave segreta.
Perché usare HMAC invece dell'hashing regolare?
| Funzionalità | Hash Regolare | HMAC |
|---|---|---|
| Integrità dei dati | ✓ | ✓ |
| Autenticazione | ✗ | ✓ |
| Richiede chiave segreta | ✗ | ✓ |
| Protezione contro l'estensione della lunghezza | ✗ | ✓ |
| Adatto per l'autenticazione API | ✗ | ✓ |
Gli hash regolari (MD5, SHA-256) verificano solo che i dati non siano cambiati. HMAC dimostra inoltre che il messaggio proviene da qualcuno che conosce la chiave segreta, rendendolo essenziale per comunicazioni sicure.
Comprensione degli algoritmi di hash
| Algoritmo | Dimensione Output | Livello di Sicurezza | Prestazioni | Raccomandazione |
|---|---|---|---|---|
| SHA-1 | 160 bit (40 caratteri esadecimali) | Debole | Più veloce | Solo sistemi legacy |
| SHA-256 | 256 bit (64 caratteri esadecimali) | Forte | Veloce | Default consigliato |
| SHA-384 | 384 bit (96 caratteri esadecimali) | Molto Forte | Moderato | Esigenze di alta sicurezza |
| SHA-512 | 512 bit (128 caratteri esadecimali) | Molto Forte | Moderato | Sicurezza massima |
SHA-256 offre il miglior equilibrio tra sicurezza e prestazioni per la maggior parte delle applicazioni. SHA-1 è incluso per la compatibilità con i sistemi legacy, ma dovrebbe essere evitato per nuove implementazioni a causa di vulnerabilità note.
Confronto formato di output
Esadecimale: Utilizza caratteri 0-9 e a-f. Produce una stringa più lunga ma più facile da leggere e debuggare. Comune nelle API e nei log.
Base64: Utilizza caratteri A-Z, a-z, 0-9, +, e /. Produce una stringa più corta (circa il 33% più breve rispetto all'esadecimale). Comune nei token JWT e nella trasmissione di dati compatti.
Esempio per lo stesso HMAC:
- Esadecimale:
5d5d139563c95b5967b9bd9a8c9b8c8d8e8f9a9b9c9d9e9f0a0b0c0d0e0f1011 - Base64:
XV0TlWPJW1lnub2ajJuMjY6Pmpm9nZ6fCgsMDQ4PEQ==
Descrizione dello strumento
Questo Generatore HMAC crea codici di autenticazione crittografica utilizzando l'API Web Crypto per un calcolo sicuro lato client. Inserisci il tuo messaggio e la chiave segreta per generare istantaneamente firme HMAC con l'algoritmo di hash desiderato (SHA-1, SHA-256, SHA-384 o SHA-512) e il formato di output (esadecimale o base64).
Tutti i processi avvengono interamente nel tuo browser: le tue chiavi segrete e i messaggi non vengono mai trasmessi a nessun server, garantendo una privacy e sicurezza complete.
[Resto del documento tradotto seguendo le stesse regole...]