Generatore TOTP
Ogni volta che Google Authenticator o Authy mostrano un codice a sei cifre che cambia ogni 30 secondi, quello è TOTP: un HMAC calcolato da un segreto condiviso e dall’ora Unix corrente, standardizzato nella RFC 6238. Questo generatore calcola gli stessi codici a partire da qualsiasi segreto Base32, ed è comodo per fare il debug di una nuova integrazione dell’autenticazione a due fattori (2FA), capire perché un servizio rifiuta i tuoi codici oppure osservare come reagisce l’algoritmo al variare dei parametri. Usalo con segreti di prova: il codice viene calcolato sul nostro server, quindi i segreti veri che proteggono i tuoi account devono stare in un’app di autenticazione, non in una pagina web.
Come funziona questo generatore TOTP
-
1
Incolla un segreto Base32
Lettere A-Z e cifre 2-7, il formato usato nei codici QR otpauth://. Spazi e minuscole vanno bene; qualsiasi altro carattere viene segnalato come Base32 non valido.
-
2
Scegli l'algoritmo di hash
SHA-1 è quello usato da quasi tutti i servizi; passa a SHA-256 o SHA-512 solo se il servizio lo richiede espressamente.
-
3
Imposta cifre e periodo
Scegli 6, 7 o 8 cifre e una finestra di 30 o 60 secondi. La combinazione standard è 6 cifre ogni 30 secondi.
-
4
Leggi il codice corrente
Il codice si aggiorna ogni secondo e il conto alla rovescia indica quanti secondi restano alla finestra corrente.
-
5
Confronta l'URI otpauth
Lo strumento mostra l'URI otpauth:// dei tuoi parametri, così puoi confrontarla con ciò che codifica il QR di configurazione di un servizio.
L’algoritmo in parole semplici
TOTP è HOTP (password monouso basata su HMAC, RFC 4226) in cui il contatore è sostituito dall’ora Unix corrente divisa per il passo temporale (di solito 30 secondi):
counter = floor(unix_time / 30)
hash = HMAC-SHA1(secret, counter_as_8_byte_big_endian)
offset = last byte of hash AND 0x0F
truncated = 4 bytes from offset, with the top bit zeroed
code = truncated mod 10^digits
Il tuo dispositivo e il server eseguono gli stessi calcoli sullo stesso segreto e sullo stesso orologio, quindi arrivano allo stesso codice senza che questo venga mai trasmesso. Un codice a 6 cifre è semplicemente l’HMAC troncato modulo 10^6. Niente magia, solo hashing.
Parametri comuni
| Servizio | Algoritmo | Cifre | Periodo |
|---|---|---|---|
| La maggior parte di siti e app | SHA-1 | 6 | 30 s |
| GitHub | SHA-1 | 6 | 30 s |
| Cloudflare | SHA-1 | 6 | 30 s |
| Account Microsoft | SHA-1 | 6 | 30 s |
| Alcune banche e VPN aziendali | SHA-256 o SHA-512 | 8 | 60 s |
Se un servizio rifiuta i tuoi codici, controlla prima il numero di cifre e il periodo, poi l’algoritmo. Tieni presente inoltre che alcune app di autenticazione ignorano in silenzio i parametri non standard (Google Authenticator storicamente trattava tutto come SHA-1, 6 cifre, 30 secondi): fai sempre le prove con l’app esatta che useranno i tuoi utenti.
Conservare i segreti in sicurezza
- Non inviare mai un segreto 2FA via email o messaggio. Una volta finito in una casella di posta, resta per sempre nei log e nei backup del provider.
- Attiva la 2FA scansionando il codice QR. Il QR codifica una URI
otpauth://totp/...che riunisce segreto, algoritmo, cifre e periodo in un unico pacchetto senza ambiguità. - Fai il backup al momento dell’attivazione. Conserva i codici di recupero, o il segreto stesso, in un gestore di password; perdere il telefono senza di essi ti lascia chiuso fuori.
- Un segreto per ogni servizio. Ogni servizio emette il proprio segreto alla configurazione; se uno trapela, riattiva la 2FA in modo che quello vecchio smetta di funzionare.
Deriva dell’orologio
TOTP funziona solo finché i due orologi concordano. Questa pagina calcola i codici con l’orologio del server: se il codice mostrato qui differisce da quello della tua app di autenticazione, il primo sospettato è l’orologio del dispositivo. La maggior parte dei validatori accetta una finestra di scarto in entrambe le direzioni (da 30 a 60 secondi); oltre, sincronizza l’orologio del dispositivo via NTP prima di dare la colpa al segreto.
Usa qui segreti di prova
Questo strumento calcola il codice sul nostro server: il segreto che digiti viene trasmesso via HTTPS a ogni aggiornamento e compare anche nell’URL della pagina se passi da uno step all’altro dello strumento. Va benissimo per sviluppo, demo e debug con segreti usa e getta. Non è il posto per il segreto vero che protegge la tua email o il tuo conto in banca; quello deve vivere in un’app di autenticazione dedicata sul tuo telefono. Se hai già incollato un segreto reale fuori dalla tua app di autenticazione, riattiva la 2FA su quel servizio così da ruotare il segreto.
Domande frequenti
Considera questa pagina uno strumento per sviluppatori e test, non una cassaforte. Il codice è calcolato lato server, quindi il segreto viaggia verso il nostro server via HTTPS e può comparire nell’URL della pagina tra uno step e l’altro. Usa liberamente segreti dimostrativi o di sviluppo; non incollare mai il segreto reale di un account a cui tieni. Se l’hai già fatto, riattiva la 2FA su quel servizio per ruotare il segreto.
Controlla prima i parametri: algoritmo, numero di cifre e periodo devono corrispondere esattamente a quanto emesso dal servizio. Poi controlla gli orologi: questa pagina usa l’orologio del server, quindi uno scostamento di solito indica l’altro dispositivo. Infine ricorda che alcune app ignorano i parametri non standard, e Google Authenticator è l’esempio classico.
Solo Base32: lettere dalla A alla Z e cifre dal 2 al 7, con padding = facoltativo. Gli spazi vengono rimossi e le minuscole convertite automaticamente. I segreti in esadecimale o in byte grezzi vanno prima convertiti in Base32, altrimenti lo strumento segnala un segreto Base32 non valido.
Resti chiuso fuori dalla 2FA di quell’account. Usa la procedura di recupero del servizio (codici di recupero, verifica dell’identità, SMS di riserva). Al momento della configurazione salva sempre i codici di recupero o il QR iniziale in un posto sicuro.
Sì. Genera un segreto casuale lato server, di almeno 128 bit (la RFC 4226 ne raccomanda 160), mostralo una sola volta come codice QR e valida i codici inviati calcolando lo stesso HMAC, di norma accettando una finestra di tolleranza in entrambe le direzioni. Esistono librerie mature per ogni stack: pyotp (Python), otplib (JavaScript), rotp (Ruby).
Strumenti correlati
Generatore di hash SHA1
Genera hash SHA-1 (40 caratteri esadecimali) da qualsiasi input di testo. Utile per checksum legacy, ID oggetti git e controlli di integrità non di sicurezza.
Generatore JWT
Genera JWT firmati con intestazione personalizzata, dichiarazioni del payload, firma HMAC o RSA, scadenza e restrizioni di pubblico per i test.
Generatore MD5
Genera un hash MD5 da qualsiasi testo o file. Output a 128 bit in esadecimale, calcolato interamente nel tuo browser.
Generatore di hash SHA256
Genera un hash SHA-256 da qualsiasi testo. Output esadecimale deterministico di 64 caratteri minuscoli, l'algoritmo dietro Bitcoin, i certificati TLS e le firme JWT.
Generatore di chiavi SSH
Genera una coppia di chiavi SSH RSA (2048, 3072 o 4096 bit) interamente nel tuo browser. Né la chiave privata né quella pubblica lasciano il tuo dispositivo. Aggiungi un commento e scaricale entrambe.
Generatore di Hash
Genera hash MD5, SHA-1, SHA-256, SHA-384, SHA-512 e CRC32 dal testo, con un digest pronto da copiare per checksum e confronti.
Strumento disponibile in altre lingue
- Bộ tạo TOTP [VI]
- TOTP-generator [SV]
- مولد TOTP [AR]
- TOTP 생성기 [KO]
- ตัวสร้าง TOTP [TH]
- Générateur TOTP [FR]
- Generator TOTP [ID]
- TOTPジェネレーター [JA]
- TOTP-Generator [DE]
- TOTP-generator [NL]
- Generador TOTP [ES]
- Generator TOTP [PL]
- Gerador TOTP [PT]
- TOTP Generator [EN]
- Генератор TOTP [RU]
- TOTP Üretici [TR]
- TOTP 生成器 [ZH]