Generatore e verificatore HMAC
La lunghezza consigliata corrisponde alla lunghezza dell'uscita Hash: SHA-1=20 byte, SHA-256=32 byte, SHA-384=48 byte, SHA-512=64 byte
Note
- • HMAC Genera firme basate su algoritmi chiave e Hashi per l'autenticazione della sorgente e dell'integrità
- • Supporto SHA-1 / SHA-256 / SHA-384 / SHA-512
- • Generare e convalidare sia localmente nei browser, senza caricare i dati
- • La convalida utilizza la lunghezza fissa per byte per ridurre le differenze della serie di tempo
Genera e verifica firme HMAC online gratis, supporta serie algoritmi SHA comuni. Ideale per firme API, verifica Webhook e debug sicurezza.
Raccomandazioni correlate
Che cos'è Generatore e verificatore HMAC?
HMAC (Hash-based Message Authentication Code) è una tecnologia di autenticazione dei messaggi ampiamente utilizzata definita in RFC 2104. L'HMAC elabora una chiave insieme a un messaggio attraverso una funzione hash per produrre una firma di lunghezza fissa. A differenza degli hash normali, l'HMAC richiede la conoscenza della chiave per generare o verificare una firma, garantendo sia l'integrità del messaggio che l'autenticità.
**L'HMAC è la base della sicurezza API moderna**. Stripe, GitHub, Shopify, Slack e Twilio usano HMAC-SHA256 per firmare gli eventi webhook, assicurando che le richieste provengano effettivamente dalla piattaforma. AWS usa HMAC-SHA256 per la firma delle richieste Signature V4. L'algoritmo HS256 di JWT è essenzialmente HMAC-SHA256. Comprendere l'HMAC è il primo passo per padroneggiare la sicurezza API.
**Piattaforme diverse hanno formati di firma diversi**: il formato di Stripe è `t=timestamp,v1=hex_signature`, firmando `timestamp.payload`; GitHub usa `X-Hub-Signature-256` con formato `sha256=hex_signature`; Shopify usa `X-Shopify-Hmac-Sha256` con valore codificato in Base64. Questo strumento supporta il parsing e la verifica automatica di questi formati comuni.
**Perché la verifica della firma fallisce?** Il motivo più comune è la mancata corrispondenza del formato del messaggio: la piattaforma potrebbe firmare `timestamp.payload` invece del corpo del messaggio grezzo; o il messaggio contiene ritorni a capo extra; o la firma include un prefisso (come `sha256=`) che deve essere rimosso. Controlla attentamente la documentazione della piattaforma e confronta usando il valore esadecimale grezzo.
Questo strumento usa **Web Crypto API** nativa del browser (SubtleCrypto) per i calcoli HMAC — la stessa libreria crittografica che alimenta HTTPS e TLS. Tutti i calcoli avvengono localmente; chiavi e messaggi non vengono mai inviati a nessun server. Apri il pannello Network degli Strumenti per Sviluppatori del browser per verificare che nessuna richiesta esterna venga effettuata.
Casi d'uso
- Sviluppo webhook Stripe: Debug dei callback di pagamento Stripe, verifica la correttezza dell'header `Stripe-Signature`
- Integrazione webhook GitHub: Verifica la firma `X-Hub-Signature-256` per eventi Push e Pull Request di GitHub
- Sincronizzazione ordini Shopify: Verifica la firma `X-Shopify-Hmac-Sha256` per webhook di aggiornamento ordini Shopify
- Firme bot Slack: Verifica `X-Slack-Signature` per callback eventi Slack
- Debug sviluppo JWT: Firma JWT con HS256, verifica la validità del token
- Firma richieste API: Implementa AWS Signature V4 o schemi di firma API personalizzati
Come utilizzare
- Seleziona algoritmo: HMAC-SHA256 predefinito, consigliato per API moderne
- Inserisci messaggio: Incolla il corpo del messaggio grezzo o il contenuto della richiesta API
- Inserisci chiave: Input Webhook Secret o API Secret
- Scegli formato: Seleziona formato output (hex per Stripe, Base64URL per JWT)
- Verifica firma: Passa alla modalità verifica, incolla la firma prevista per confrontare
Funzionalità
- Supporto multi-algoritmo: HMAC-SHA256/384/512, SHA1, MD5 — copre API moderne e sistemi legacy
- Verifica firma Webhook: Supporto integrato per formati firma Stripe/GitHub/Shopify/Slack con parsing automatico
- Tre formati di output: Hex / Base64 / Base64URL — soddisfa qualsiasi requisito API o piattaforma
- Generazione in tempo reale: Calcolo automatico al cambio di input con debounce di 300ms, nessun clic necessario
- Modalità verifica firma: Incolla la firma prevista per confrontare, visualizzazione risultato in tempo reale
- Rilevamento lunghezza chiave: Monitoraggio in tempo reale della forza della chiave con avvisi per chiavi corte
- Elaborazione nel browser: Web Crypto API per calcolo locale, chiavi mai caricate su server
- Supporto JWT: Output HMAC-SHA256 direttamente utilizzabile per firma HS256
Domande frequenti
Qual è la differenza tra HMAC e hash normale?
Le funzioni hash normali (come SHA256) calcolano solo un digest del messaggio stesso — chiunque può calcolarlo. L'HMAC introduce una chiave segreta nel processo di hashing, quindi solo chi possiede la chiave può generare o verificare una firma valida. L'HMAC garantisce sia l'integrità del messaggio che l'autenticità, mentre l'hash normale verifica solo l'integrità.
Come verificare le firme Webhook di Stripe/GitHub/Shopify?
Ogni piattaforma formatta le firme in modo diverso: Stripe usa l'header `Stripe-Signature` con formato `t=timestamp,v1=hex_signature`, firmando la stringa `timestamp.payload`; GitHub usa `X-Hub-Signature-256` con formato `sha256=hex_signature`; Shopify usa `X-Shopify-Hmac-Sha256` con valore codificato in Base64. Questo strumento supporta la verifica diretta di questi formati comuni.
Qual è la differenza tra output Hex, Base64 e Base64URL?
Hex è il formato esadecimale (0-9, A-F), leggibile dall'uomo, ottimo per il debug. Base64 è una codifica a 64 caratteri, più compatta, ideale per incorporare in JSON. Base64URL è la versione URL-safe (sostituisce +/ con -_), usata negli header JWT e nei parametri URL.
Quale algoritmo HMAC dovrei usare?
**HMAC-SHA256 è consigliato**: è lo standard moderno per API e webhook (usato da Stripe, GitHub, Shopify, Slack), con output di 32 byte e supporto universale. SHA-512 offre maggiore sicurezza ma output più lungo (64 byte). SHA1 è solo per sistemi legacy. MD5 è deprecato e va usato solo per API molto vecchie.
Quali sono i requisiti per la lunghezza della chiave?
Chiavi più lunghe sono più sicure. Si consiglia un minimo di 16 caratteri (128 bit), 32+ caratteri per la produzione. Lo strumento monitora la lunghezza della chiave e avvisa se è troppo corta. Usa generatori di numeri casuali crittograficamente sicuri per le chiavi, non password semplici o stringhe prevedibili.
Perché la verifica della firma mostra mancata corrispondenza?
Cause comuni: 1) Il messaggio contiene spazi bianchi o ritorni a capo extra; 2) La piattaforma firma una stringa composita (es. Stripe firma `timestamp.payload`); 3) La firma include un prefisso che devi rimuovere (come `sha256=` di GitHub); 4) Algoritmo diverso utilizzato. Controlla che entrambi i lati usino parametri identici.
L'HMAC può essere usato per la firma JWT?
Sì. L'algoritmo HS256 di JWT è HMAC-SHA256, e HS512 è HMAC-SHA512. L'output HMAC-SHA256 di questo strumento può essere usato direttamente come contenuto della firma per HS256. Header e Payload JWT sono codificati in Base64URL, poi firmati con HS256.
Questo strumento HMAC online è sicuro?
Questo strumento usa Web Crypto API per tutti i calcoli nel tuo browser localmente. Chiavi e messaggi non vengono mai inviati a nessun server. Puoi verificarlo aprendo il pannello Network degli Strumenti per Sviluppatori del browser — nessuna richiesta esterna viene effettuata. Adatto per test e sviluppo; per chiavi di produzione altamente sensibili, usa strumenti offline locali.
Le firme HMAC possono essere falsificate?
No. La sicurezza HMAC dipende dalla segretezza della chiave e dalla resistenza alle collisioni dell'algoritmo hash. Con chiavi sufficientemente lunghe e casuali, non esistono attacchi noti in grado di falsificare firme HMAC valide. La rotazione regolare delle chiavi è una buona pratica di sicurezza.
- Confronto sicuro testo
- Conversione binario
- Cifrario di Cesare
- Codice Morse
- Conversione Hex
- Video in Base64
- Da Base64 a Video
- Immagine in Base64
- Da Base64 a Immagine
- Testo in Base64
- Da Base64 a Testo
- Verificatore hash di file
- File in Base64
- Base64 in File
- Audio in Base64
- Base64 in Audio
- Crittografia e decrittografia AES
- Crittografia e decrittografia DES
- Encoder Decoder Base32
- Codifica e decodifica Base58
- Codifica Base64
- Decodifica Base64
- Confronta Base64
- Dividi Base64
- Unisci Base64 multi-linea
- Formattazione Base64
- Verifica Formato Base64
- Codifica Base64 in batch
- Decodifica Base64 Batch
- Pulizia Base64
- Gestione Padding Base64
- Statistiche Lunghezza Base64
- Da Base64 a Hex
- Convertitore Base64 DataURL
- Convertitore Base64-Hex
- Codifica Base85
- Generatore e verificatore HMAC
- Derivazione chiave PBKDF2
- Hash MD5
- Hash SHA-256
- Hash SHA1
- Hash SHA512
- Decodificatore, Verificatore e Generatore JWT
- Codifica e decodifica entità HTML
- Unicode Escape
- Codifica URL
- Base64 URL Safe
- MIME Base64
- Offuscamento Java
- Offuscamento JS
- Offuscamento PHP
- Offuscamento Python