Generatore TOTP — Codici 2FA e generatore di QR otpauth

Trasforma un segreto Base32 in codici 2FA in tempo reale con conto alla rovescia, crea un codice QR otpauth:// per le app di autenticazione o leggi un URI esistente.

Spazi e minuscole vanno bene. Chiave a 160 bit.
30
Codice attuale
— — —
Precedente — · Successivo —

I codici dipendono dall'orologio del dispositivo. Se vengono rifiutati, verifica che l'ora sia impostata automaticamente; la maggior parte dei server accetta anche il codice precedente e quello successivo.

URI otpauth:// e codice QR

otpauth://totp/Example%20Inc:jane%40example.com?secret=GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ&issuer=Example%20Inc&algorithm=SHA1&digits=6&period=30

Scansionalo con Google Authenticator, Microsoft Authenticator, 1Password, Authy o qualsiasi app TOTP. Molte app ignorano SHA-256/512 e 8 cifre; mantieni le impostazioni predefinite a meno che tu non controlli entrambi i lati.

Leggi un URI otpauth://

Segreti e codici restano nel browser. Nulla viene inviato o salvato. Tratta un segreto TOTP come una password: chiunque lo possieda può generare i tuoi codici. Sfoglia tutti gli strumenti gratuiti.

Hai trovato un problema o qualcosa che potrebbe andare meglio? Leggiamo ogni messaggio e sistemiamo le cose in fretta.

Questo generatore TOTP produce gli stessi codici monouso basati sul tempo di Google Authenticator, Microsoft Authenticator, 1Password e altre app di autenticazione. Inserisci un segreto Base32 e il codice attuale a 6 o 8 cifre compare con un conto alla rovescia, insieme ai codici precedente e successivo. È pensato per gli sviluppatori che aggiungono l'autenticazione a due fattori a un'applicazione: genera un segreto, crea l'URI otpauth:// e il codice QR che gli utenti scansioneranno e verifica che il tuo server accetti i codici che dovrebbe.

I codici vengono calcolati nel browser con la funzione HMAC di WebCrypto, secondo l'RFC 6238 (TOTP) e l'RFC 4226 (HOTP), e l'implementazione è testata con i vettori di test ufficiali di entrambi gli RFC. Nulla viene inviato da nessuna parte. Anche così, un segreto TOTP è sensibile quanto una password: chiunque lo possieda può generare codici validi. Usalo per account di prova e lavori di integrazione, non come sostituto di un'app di autenticazione per i tuoi account reali.

Come si usa

  1. Incolla un segreto Base32 o premi Nuovo segreto casuale. Spazi e minuscole vanno bene.
  2. Lascia algoritmo, cifre e periodo su SHA-1, 6 e 30 secondi, a meno che il tuo server non usi valori diversi.
  3. Leggi il codice attuale; l'anello mostra per quanti secondi resta valido. Copialo con il pulsante.
  4. Compila emittente e nome dell'account per creare l'URI otpauth://, poi scansiona il codice QR con un'app di autenticazione per verificare che entrambi mostrino lo stesso codice.
  5. Per esaminare una configurazione esistente, incolla il suo URI otpauth:// nel lettore e premi Carica.

Domande frequenti

Come funziona un codice TOTP?

Il tuo server e la tua app di autenticazione condividono una chiave segreta. Ogni 30 secondi, entrambi calcolano l'HMAC-SHA1 della chiave e del numero di intervalli di 30 secondi trascorsi dal 1° gennaio 1970, poi riducono il risultato a 6 cifre. Poiché entrambe le parti usano lo stesso segreto e lo stesso orologio, ottengono lo stesso codice senza comunicare. Questo è l'RFC 6238; l'algoritmo sottostante basato su contatore è HOTP, RFC 4226.

Perché il mio codice TOTP non funziona?

La causa di gran lunga più comune è un orologio sfasato. Una differenza di più di circa 30 secondi colloca il dispositivo in un intervallo di tempo diverso; imposta dispositivo e server in modo che sincronizzino l'ora automaticamente. Altre cause: il segreto è stato digitato male (Base32 usa solo A–Z e 2–7, quindi O, I, 0, 1 e 8 non compaiono mai), oppure il server si aspetta impostazioni diverse, come 8 cifre, SHA-256 o un periodo di 60 secondi.

SHA-1 nel TOTP è insicuro?

No. Le debolezze note di SHA-1 sono attacchi di collisione, che permettono di creare due input con lo stesso hash. Il TOTP usa SHA-1 all'interno di HMAC con una chiave segreta, una costruzione che non dipende dalla resistenza alle collisioni e resta sicura. SHA-1 è ancora il valore predefinito perché è quello che supporta quasi ogni app di autenticazione.

Che cos'è un URI otpauth://?

È il testo contenuto in un codice QR di configurazione della 2FA, nel Key Uri Format definito originariamente da Google Authenticator: otpauth://totp/Issuer:account?secret=BASE32SECRET&issuer=Issuer, con parametri facoltativi algorithm, digits e period. Scansionare il codice QR passa semplicemente questa stringa all'app. Chiunque veda il codice QR o l'URI ha il segreto, quindi tratta le schermate di configurazione come informazioni sensibili.

Quanto deve essere lungo un segreto TOTP?

L'RFC 4226 richiede almeno 128 bit e ne raccomanda 160, cioè 32 caratteri Base32. Il pulsante Nuovo segreto casuale genera 160 bit con crypto.getRandomValues. Molti servizi più vecchi emettono segreti da 80 bit (16 caratteri); funzionano, e questo strumento lo segnala, ma i nuovi sistemi dovrebbero usare almeno 160 bit.

Tutte le app di autenticazione supportano 8 cifre e SHA-256?

No. Il formato otpauth consente SHA256, SHA512, 8 cifre e altri periodi, ma alcune app ignorano quei parametri e generano sempre codici SHA-1 a 6 cifre e 30 secondi, che quindi non corrispondono. Se controlli il server, i valori predefiniti sono la scelta sicura. Prima di adottare un'impostazione non predefinita, scansiona il codice QR di questa pagina con le app che i tuoi utenti useranno più probabilmente e confronta i codici.

Aggiungere il TOTP alla tua applicazione

• Genera sul server un segreto casuale di almeno 160 bit per utente e conservalo cifrato, non come hash: il server ha bisogno dell'originale per calcolare i codici.

• Mostra l'URI otpauth:// come codice QR, più il segreto Base32 come testo per gli utenti che non possono scansionarlo.

• Chiedi all'utente di inserire un codice valido prima di attivare la 2FA, così una scansione non riuscita non lo chiude fuori dall'account.

• In fase di verifica, accetta il codice attuale e di solito un intervallo prima e dopo (i codici precedente e successivo mostrati qui) per assorbire lo scostamento dell'orologio, e rifiuta un codice già usato in quella finestra per impedire il replay.

• Limita il numero di tentativi. Un codice a 6 cifre ha solo un milione di combinazioni, quindi tentativi illimitati lo rendono inutile.

• Rilascia codici di recupero monouso al momento dell'attivazione e salvane l'hash come per le password.

TOTP a confronto con codici SMS, notifiche push e passkey

Il TOTP è molto più robusto dei codici via SMS, che possono essere intercettati con attacchi di SIM swap e sfruttando le debolezze di SS7, e funziona offline senza numero di telefono. Il suo punto debole è il phishing: una pagina di accesso falsa ma convincente può chiedere il codice e inoltrarlo al sito reale entro la finestra di 30 secondi.

Le approvazioni push sono comode ma espongono ad attacchi di "MFA fatigue", in cui l'attaccante invia richieste finché l'utente non tocca Approva. Passkey e chiavi di sicurezza hardware (FIDO2/WebAuthn) sono gli unici metodi diffusi che resistono al phishing per come sono progettati, perché il browser lega la credenziale al dominio del sito reale. Un approccio sensato è offrire prima le passkey e mantenere il TOTP come alternativa ampiamente supportata.

Strumenti gratuiti correlati

  • Generatore di password — Genera una password casuale sicura, una passphrase facile da ricordare o un PIN. Funziona interamente nel browser: nulla viene inviato o salvato.
  • Generatore di codici QR — Crea un codice QR per un URL, un testo, un'email, un telefono, un SMS, una rete Wi-Fi o un biglietto da visita, con i tuoi colori, e scaricalo in PNG o SVG. I codici non scadono mai.
  • Generatore bcrypt — Calcola l'hash bcrypt di una password con il costo che scegli, verifica una password con un hash bcrypt e scopri cosa significa ogni parte dell'hash.
  • Generatore di hash — Calcola l'hash di testo o file con MD5, SHA-1, SHA-256, SHA-384, SHA-512 e CRC32, verifica un checksum o calcola un HMAC. I file non lasciano mai il tuo dispositivo.