Testare un’integrazione 2FA
Stai sviluppando l’attivazione a due fattori: genera un segreto, importa l’URI nella tua app di autenticazione e verifica che il server accetti gli stessi codici.
Inserisci o genera un segreto Base32 da 160 bit, scegli SHA-1, SHA-256 o SHA-512, 6 o 8 cifre e il periodo: il codice TOTP corrente si aggiorna con un conto alla rovescia, l’URI otpauth:// è pronta per un’app di autenticazione e puoi verificare un codice con una tolleranza di un periodo.
La chiave condivisa mostrata sotto il QR code di attivazione (lettere A-Z e cifre 2-7).
Da codificare in un QR code per Google Authenticator, Microsoft Authenticator, Aegis o 1Password.
Questo strumento calcola i codici monouso TOTP, quelli mostrati da Google Authenticator, Microsoft Authenticator o 1Password, a partire da un segreto Base32. Aiuta gli sviluppatori che integrano l’autenticazione a due fattori a testare la loro implementazione e gli amministratori a controllare un segreto o preparare un’URI di registrazione.
TOTP (RFC 6238) è la variante temporale di HOTP (RFC 4226). Si calcola un contatore T = floor(ora Unix / periodo), 30 secondi per impostazione predefinita, poi HMAC(segreto, T) con SHA-1, SHA-256 o SHA-512. Il «troncamento dinamico» estrae 4 byte dell’HMAC a partire da un offset dato dai suoi ultimi 4 bit, e il risultato modulo 10^6 (o 10^8) è il codice. Esempio della RFC: con il segreto ASCII `12345678901234567890` (Base32 `GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ`), SHA-1 e l’istante 59 s, il codice a 8 cifre è 94287082.
Lo strumento decodifica il segreto Base32 (o ne genera uno da 160 bit, 32 caratteri, con crypto.getRandomValues), calcola il codice corrente con Web Crypto e lo aggiorna con un conto alla rovescia fino al periodo successivo. Costruisce l’URI `otpauth://totp/Emittente:account?secret=…&issuer=Emittente&algorithm=SHA1&digits=6&period=30` che le app importano, di solito tramite un QR code. In verifica confronta il codice inserito con quelli del periodo precedente, corrente e successivo, assorbendo un piccolo scarto dell’orologio.
Incolla un segreto Base32 o generane uno da 160 bit, poi scegli l’algoritmo (SHA-1, SHA-256, SHA-512), il numero di cifre (6 o 8) e il periodo (30 s per impostazione predefinita).
Il codice corrente compare con il suo conto alla rovescia; indica emittente e nome dell’account per ottenere l’URI otpauth:// da importare in un’app.
Scrivi un codice ricevuto: lo strumento ti dice se corrisponde al periodo corrente, precedente o successivo.
Stai sviluppando l’attivazione a due fattori: genera un segreto, importa l’URI nella tua app di autenticazione e verifica che il server accetti gli stessi codici.
Confronta il codice atteso per un segreto con quello dell’app dell’utente per distinguere un segreto sbagliato, un algoritmo diverso o un orologio fuori sincrono.
Costruisci l’URI otpauth:// con emittente e nome account corretti, poi trasformala in un QR code per il team che deve registrare l’account.
La causa più frequente è un orologio sfasato sul telefono o sul server: bastano poche decine di secondi per cambiare periodo. Seguono un segreto copiato male e un algoritmo, un numero di cifre o un periodo diversi da quelli attesi dal servizio. Attiva l’ora automatica e confronta il codice di questo strumento con quello dell’app.
HOTP (RFC 4226) calcola il codice da un contatore che aumenta a ogni utilizzo e deve restare sincronizzato tra client e server. TOTP (RFC 6238) sostituisce il contatore con il tempo diviso in periodi di 30 secondi, così il codice scade da solo. Quasi tutte le app 2FA diffuse usano TOTP.
Il servizio la mostra quando attivi la 2FA, sotto il QR code, spesso come «chiave di configurazione» o «inserisci il codice manualmente». Il QR code stesso contiene un’URI otpauth:// il cui parametro secret è proprio quella chiave in Base32. Terminata l’attivazione, la maggior parte dei servizi non la mostra più.
Non è garantito: la documentazione storica del formato URI indica che Google Authenticator ignorava algorithm, digits e period e generava codici SHA-1 a 6 cifre che poi non corrispondono. App come 1Password o Authy accettano SHA-256 e SHA-512. Per un servizio pubblico, SHA-1 a 6 cifre resta la scelta compatibile, ed è sicuro nella costruzione HMAC.
Un codice corrisponde a un periodo, 30 secondi per impostazione predefinita. Molti server, come questo strumento in verifica, accettano anche il periodo precedente e quello successivo per compensare latenza e scarto dell’orologio, con una finestra effettiva di circa 90 secondi.
Il segreto genera tutti i tuoi codici futuri: chi lo possiede ha il tuo secondo fattore. Qui il calcolo avviene solo nel tuo browser con Web Crypto e non viene trasmesso nulla. Evita comunque di incollare il segreto di un vero account di produzione su un dispositivo condiviso; meglio un segreto di prova.
Strumenti correlati
Strumenti simili o complementari a questo.
Genera token casuali sicuri da 8 a 256 byte in esadecimale, Base64 o Base64URL, con prefisso opzionale.
Calcola un HMAC SHA-1, SHA-256, SHA-384 o SHA-512 in hex o Base64 e verifica una firma di webhook.
Genera password sicure e casuali da 8 a 128 caratteri, con l’entropia indicata.
Scopri quando usare crittografia, hashing, HMAC o PBKDF2 per riservatezza, integrità, autenticazione e password.
Comprendi come si collegano OAuth 2.0, PKCE, JWT, JWK e JWKS: autorizzazione, token, chiavi pubbliche e verifica.
Impara a costruire una CSP progressiva, comprenderne le direttive ed evitare policy troppo permissive o che rompono il sito.