Digite um segredo válido para ver o código.
Confira um código como o servidor faria: aceita-se o atual e até 2 passos antes ou depois, para tolerar relógios dessincronizados.
Como funciona
TOTP (Time-based One-Time Password, RFC 6238) é o algoritmo por trás dos códigos de seis dígitos do Google Authenticator, Microsoft Authenticator, Authy ou 1Password. O serviço e o seu celular compartilham um segredo; a cada 30 segundos, os dois calculam um HMAC do segredo com a hora atual dividida em passos, cortam o resultado para seis dígitos e o comparam. Como ninguém transmite o código até você digitá-lo, ele funciona mesmo com o celular sem conexão.
HOTP (RFC 4226) é o algoritmo base: em vez da hora, usa um contador que avança cada vez que um código é solicitado. TOTP é HOTP com o contador substituído pelo número de períodos decorridos desde 1970. O segredo é escrito em Base32 e viaja dentro de um URI otpauth:// que é exibido como QR code ao ativar a verificação em duas etapas.
A ferramenta gera segredos com o gerador criptográfico do navegador, calcula o código atual, o anterior e o próximo, monta o URI e seu QR code, lê um URI existente e verifica um código com a mesma tolerância de relógio que os servidores usam. O segredo nunca sai do seu navegador nem é incluído no link de compartilhamento.
Exemplos
GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ · SHA1 · 8 · T = 59 s94287082Vetor de teste da RFC 6238. O segredo é o texto ASCII 12345678901234567890 codificado em Base32; aos 59 segundos da época Unix o passo é 1 e o código de oito dígitos tem que ser exatamente este.GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ · SHA1 · 8 · T = 1111111109 s07081804Outro vetor da RFC 6238, útil para confirmar que sua implementação não perde os zeros à esquerda: o código é uma sequência de dígitos de tamanho fixo, não um inteiro.HOTP · GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ · contador 0755224Primeiro vetor da RFC 4226 com seis dígitos. Com o contador em 1, o código passa a ser 287082.otpauth://totp/Ejemplo:ana%40example.com?secret=JBSWY3DPEHPK3PXP&issuer=EjemploTOTP · SHA1 · 6 · 30 sO formato Key URI definido pelo Google Authenticator e adotado pelos demais apps. Se algorithm, digits e period estiverem ausentes, assume-se SHA1, 6 e 30, por isso a maioria dos QR codes traz apenas o segredo e o emissor.Casos de uso
- Testar a ativação de 2FA da sua aplicação: gerar um segredo, escanear o QR code com o celular e confirmar que o servidor aceita o mesmo código que o app mostra.
- Depurar por que um servidor rejeita códigos válidos: ver se eles coincidem com o passo anterior ou o próximo revela um relógio dessincronizado.
- Validar uma implementação própria de TOTP ou HOTP com os vetores de teste das RFC 6238 e 4226.
- Ler um URI otpauth:// exportado de outro app para ver qual algoritmo, quantos dígitos e qual período a conta usa.
- Carregar em um segundo app ou em um gerenciador de senhas uma conta de teste cujo segredo você já tem em Base32.
Perguntas frequentes
Por que o servidor rejeita um código que o app mostra como válido?
Quase sempre é o relógio. O TOTP depende de o celular e o servidor concordarem sobre a hora: com 30 segundos de diferença eles já calculam passos diferentes. Por isso os servidores aceitam um ou dois passos para cada lado. Se o código coincidir com o passo anterior ou o próximo, sincronize a hora do servidor com NTP e ative a hora automática no celular.
É seguro gerar aqui o segredo de uma conta real?
O segredo é gerado com crypto.getRandomValues e não sai do seu navegador, mas em produção quem deve gerá-lo e armazená-lo é o servidor que vai verificar os códigos. Esta ferramenta serve para testar e depurar. Trate qualquer segredo real como uma senha: quem o tiver pode gerar seus códigos para sempre.
Vale a pena usar SHA-256, 8 dígitos ou 60 segundos?
Em teoria são mais fortes, mas vários apps, entre eles versões do Google Authenticator, ignoram esses parâmetros e sempre calculam SHA-1 com 6 dígitos a cada 30 segundos, fazendo o usuário ver códigos que o servidor rejeita. O SHA-1 continua seguro como HMAC. Por compatibilidade, quase todos os serviços usam os valores padrão.
Qual deve ser o tamanho do segredo?
A RFC 4226 exige pelo menos 128 bits e recomenda 160, que em Base32 são 32 caracteres. Muitos serviços usam 80 bits (16 caracteres) e os apps os aceitam mesmo assim. Esta ferramenta gera 160 bits.
O TOTP protege contra phishing?
Não totalmente. É muito melhor que o SMS, que pode ser interceptado ou roubado com uma troca de SIM, mas um site falso pode pedir o código e usá-lo no site real dentro dos mesmos 30 segundos. As chaves de segurança FIDO2 e as passkeys são vinculadas ao domínio e resistem a esse ataque.
O que acontece se eu perder o celular?
Sem o segredo não há como calcular os códigos. Por isso os serviços fornecem códigos de recuperação ao ativar o 2FA: guarde-os fora do celular. Alguns apps permitem fazer backup criptografado das contas na nuvem ou exportá-las como QR code para transferi-las a outro aparelho.