Sobre esta ferramenta
TOTP (senha de uso único baseada em tempo, RFC 6238) é o algoritmo por trás dos códigos de seis dígitos exibidos pelo Google Authenticator, Microsoft Authenticator, Authy e na maioria das configurações de dois fatores do tipo "escaneie este QR code". Ele funciona combinando uma chave secreta compartilhada com a hora atual, arredondada para baixo em uma janela fixa (geralmente 30 segundos), e passando o resultado por HMAC — a mesma construção usada pelo HOTP da RFC 4226, só que com um contador derivado do tempo em vez de um contador incremental. Como ambos os lados (seu dispositivo e o servidor) conhecem o segredo e podem ler o relógio, eles calculam independentemente o mesmo código sem nunca transmiti-lo.
Esta ferramenta executa o algoritmo completo da RFC 6238 no lado do cliente usando a implementação nativa de HMAC do WebCrypto do navegador: cole (ou gere) um segredo codificado em Base32, e ela deriva o código atual, ao vivo, atualizando a cada segundo e renovando exatamente quando a janela de 30 segundos termina. É destinada a desenvolvedores que verificam uma implementação de TOTP, testam um fluxo de integração, ou querem entender como os códigos de autenticador são realmente calculados — não para armazenar os segredos 2FA reais das suas contas.
Perguntas frequentes
Este é o mesmo algoritmo do Google Authenticator?
Sim — isso implementa TOTP RFC 6238 com SHA-1 (o padrão), que é exatamente o que Google Authenticator, Authy, Microsoft Authenticator e a maioria dos aplicativos 2FA usam. Dado o mesmo segredo, esta ferramenta e esses aplicativos produzirão códigos idênticos no mesmo momento.
Por que meu código parou de corresponder ao meu aplicativo autenticador?
As duas causas mais comuns: o relógio do seu dispositivo se desviou (TOTP é baseado em tempo, então ambos os lados precisam de relógios precisos — sincronize a hora do seu sistema), ou você digitou/colou o segredo Base32 ligeiramente errado. Verifique o segredo caractere por caractere, já que o TOTP não tem uma forma integrada de detectar um erro de digitação no próprio segredo.