Gerador TOTP — gerador de códigos 2FA e de QR Code otpauth
Transforme um segredo Base32 em códigos 2FA ao vivo com contagem regressiva, monte um QR Code otpauth:// para apps autenticadores ou leia uma URI existente.
Os códigos dependem do relógio do seu dispositivo. Se forem recusados, confira se o relógio está em ajuste automático; a maioria dos servidores também aceita o código anterior e o próximo.
URI otpauth:// e QR code
otpauth://totp/Example%20Inc:jane%40example.com?secret=GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ&issuer=Example%20Inc&algorithm=SHA1&digits=6&period=30
Escaneie com o Google Authenticator, Microsoft Authenticator, 1Password, Authy ou qualquer app de TOTP. Muitos apps ignoram SHA-256/512 e 8 dígitos; mantenha os valores padrão, a menos que você controle os dois lados.
Ler uma URI otpauth://
Segredos e códigos ficam no seu navegador. Nada é enviado nem armazenado. Trate um segredo TOTP como uma senha: quem o tiver consegue gerar os seus códigos. Ver todas as ferramentas grátis.
Encontrou um problema ou algo que poderia ser melhor? Lemos todas as mensagens e corrigimos rápido.
Este gerador TOTP produz os mesmos códigos temporários de uso único que o Google Authenticator, o Microsoft Authenticator, o 1Password e outros apps autenticadores. Informe um segredo Base32 e o código atual de 6 ou 8 dígitos aparece com uma contagem regressiva, ao lado dos códigos anterior e seguinte. Ele foi feito para desenvolvedores que estão adicionando autenticação de dois fatores a uma aplicação: gere um segredo, monte a URI otpauth:// e o QR Code que seus usuários vão escanear e confira se o seu servidor aceita os códigos que deveria.
Os códigos são calculados no seu navegador com a função HMAC do WebCrypto, seguindo a RFC 6238 (TOTP) e a RFC 4226 (HOTP), e a implementação é testada com os vetores de teste oficiais das duas RFCs. Nada é enviado a lugar nenhum. Mesmo assim, um segredo TOTP é tão sensível quanto uma senha: quem o tiver pode gerar códigos válidos. Use isto para contas de teste e trabalho de integração, não como substituto de um app autenticador nas suas contas reais.
Como usar
- Cole um segredo Base32 ou clique em Novo segredo aleatório. Espaços e letras minúsculas não são problema.
- Deixe algoritmo, dígitos e período em SHA-1, 6 e 30 segundos, a menos que seu servidor use outra coisa.
- Leia o código atual; o anel mostra por quantos segundos ele continua válido. Copie-o com o botão.
- Preencha o emissor e o nome da conta para montar a URI otpauth:// e depois escaneie o QR Code com um app autenticador para confirmar que os dois mostram o mesmo código.
- Para inspecionar uma configuração existente, cole a URI otpauth:// dela no leitor e clique em Carregar.
Perguntas frequentes
Como funciona um código TOTP?
Seu servidor e seu app autenticador compartilham uma chave secreta. A cada 30 segundos, os dois calculam o HMAC-SHA1 da chave e do número de intervalos de 30 segundos desde 1º de janeiro de 1970 e reduzem o resultado a 6 dígitos. Como os dois lados usam o mesmo segredo e o mesmo relógio, chegam ao mesmo código sem se comunicar. Essa é a RFC 6238; o algoritmo baseado em contador por trás dela é o HOTP, RFC 4226.
Por que meu código TOTP não funciona?
De longe, a causa mais comum é um relógio fora de hora. Uma diferença de mais de uns 30 segundos coloca o dispositivo em outro intervalo de tempo; configure o dispositivo e o servidor para sincronizar a hora automaticamente. Outras causas: o segredo foi digitado errado (o Base32 usa só A–Z e 2–7, então O, I, 0, 1 e 8 nunca aparecem) ou o servidor espera outras configurações, como 8 dígitos, SHA-256 ou período de 60 segundos.
O SHA-1 no TOTP é inseguro?
Não. As fraquezas conhecidas do SHA-1 são ataques de colisão, que permitem criar duas entradas com o mesmo hash. O TOTP usa o SHA-1 dentro de um HMAC com chave secreta, uma construção que não depende de resistência a colisões e continua segura. O SHA-1 ainda é o padrão porque é o que quase todo app autenticador suporta.
O que é uma URI otpauth://?
É o texto dentro de um QR Code de configuração de 2FA, no Key Uri Format definido originalmente pelo Google Authenticator: otpauth://totp/Issuer:account?secret=BASE32SECRET&issuer=Issuer, opcionalmente com os parâmetros algorithm, digits e period. Escanear o QR Code simplesmente passa essa string para o app. Quem vê o QR Code ou a URI tem o segredo, então trate as telas de configuração como sensíveis.
Qual deve ser o tamanho de um segredo TOTP?
A RFC 4226 exige pelo menos 128 bits e recomenda 160 bits, o que equivale a 32 caracteres Base32. O botão Novo segredo aleatório gera 160 bits com crypto.getRandomValues. Muitos serviços mais antigos emitem segredos de 80 bits (16 caracteres); eles funcionam, e esta ferramenta avisará sobre eles, mas sistemas novos devem usar pelo menos 160 bits.
Todos os apps autenticadores suportam 8 dígitos e SHA-256?
Não. O formato otpauth permite SHA256, SHA512, 8 dígitos e outros períodos, mas alguns apps ignoram esses parâmetros e sempre geram códigos SHA-1 de 6 dígitos e 30 segundos, que então não batem. Se você controla o servidor, os padrões são a escolha segura. Escaneie o QR Code desta página nos apps que seus usuários provavelmente vão usar e compare os códigos antes de lançar uma configuração fora do padrão.
Adicionando TOTP à sua própria aplicação
• Gere no servidor um segredo aleatório de pelo menos 160 bits por usuário e armazene-o criptografado, não com hash: o servidor precisa do original para calcular os códigos.
• Mostre a URI otpauth:// como QR Code e também o segredo Base32 como texto, para quem não consegue escanear.
• Exija que o usuário digite um código válido antes de ativar o 2FA, para que uma leitura malsucedida não o deixe trancado do lado de fora.
• Na verificação, aceite o código atual e normalmente um intervalo para cada lado (os códigos anterior e seguinte mostrados aqui) para absorver desvios de relógio, e rejeite um código que já tenha sido usado nessa janela para impedir reutilização.
• Limite as tentativas. Um código de 6 dígitos tem só um milhão de possibilidades, então tentativas ilimitadas o derrotam.
• Emita códigos de recuperação de uso único no cadastro e guarde-os com hash, como senhas.
TOTP comparado com códigos por SMS, push e passkeys
O TOTP é muito mais forte que códigos por SMS, que podem ser interceptados por golpes de troca de chip (SIM swap) e falhas do SS7, e funciona offline, sem número de telefone. Sua fraqueza é o phishing: uma página de login falsa convincente pode pedir o código e repassá-lo ao site verdadeiro dentro da janela de 30 segundos.
Aprovações por push são práticas, mas abrem espaço para ataques de “fadiga de MFA”, em que o atacante envia solicitações até o usuário tocar em aprovar. Passkeys e chaves de segurança físicas (FIDO2/WebAuthn) são os únicos métodos comuns que resistem a phishing por definição, porque o navegador vincula a credencial ao domínio do site verdadeiro. Uma abordagem sensata é oferecer passkeys primeiro e manter o TOTP como alternativa amplamente suportada.
Ferramentas grátis relacionadas
- Gerador de senhas — Gere uma senha aleatória forte, uma frase-senha fácil de lembrar ou um PIN. Funciona inteiramente no seu navegador; nada é enviado nem armazenado.
- Gerador de QR Code — Crie um QR Code para URL, texto, e-mail, telefone, SMS, Wi-Fi ou cartão de contato, nas suas cores, e baixe em PNG ou SVG. Os códigos nunca expiram.
- Gerador de bcrypt — Gere o hash bcrypt de uma senha no custo que você escolher, confira uma senha com um hash bcrypt e veja o que significa cada parte do hash.
- Gerador de hash — Gere hashes de textos ou arquivos com MD5, SHA-1, SHA-256, SHA-384, SHA-512 e CRC32, verifique um checksum ou calcule um HMAC. Os arquivos nunca saem do seu dispositivo.