Gerador TOTP / HOTP 2FA
CriptoGere senhas de uso único baseadas em tempo (TOTP) ou em contador (HOTP) a partir de um segredo Base32 ou URI otpauth://. Contagem regressiva ao vivo e QR Code escaneável — tudo localmente no seu navegador.
URLs remotas não são buscadas; cole seu JSON diretamente.
Escaneie com o Google Authenticator, Authy, 1Password ou qualquer app TOTP.
Nesta página
O que é um TOTP?#
Uma senha de uso único baseada no tempo (TOTP) é o código de 6 dígitos rotativo que a sua aplicação de autenticação mostra ao lado de cada conta. Por baixo, é um HMAC: o segredo compartilhado e a janela de tempo atual são hashed juntos, e o resultado é truncado num código numérico curto. Como o código depende do relógio, ele rola por si a cada 30 segundos — o que torna “algo que tem” (o segredo) utilizável como segundo fator sem qualquer ida-e-volta de rede entre o seu telefone e o serviço.
Esta página é um gerador TOTP e HOTP totalmente funcional. TOTP deriva o código do tempo atual e atualiza-se à medida que o período decorre; HOTP deriva-o de um contador que avança a cada uso. Pode escrever um segredo Base32 diretamente, ou colar uma URI otpauth:// (a string codificada nos códigos QR que os serviços mostram ao ativar 2FA) e ter todos os campos preenchidos automaticamente. A página também emite a URI canónica otpauth:// e renderiza um código QR escaneável, pelo que pode provisionar uma nova conta numa aplicação de telefone diretamente daqui.
Tudo corre localmente: o segredo nunca sai da página, e não há nenhuma chamada online a qualquer serviço de autenticação.
Como usar#
- Escolha um modo: TOTP (baseado no tempo, atualiza-se sozinho) ou HOTP (baseado em contador, avança manualmente).
- Forneça o segredo. Ou cole o segredo Base32 no campo do segredo, ou cole uma URI
otpauth://no campo da URI para preencher automaticamente todos os parâmetros de uma só vez. - Defina as etiquetas de emissor e conta (estas só afetam como a entrada é nomeada numa aplicação de autenticação, não o código em si).
- Escolha o algoritmo (SHA-1 / SHA-256 / SHA-512 — SHA-1 é a predefinição universal), os dígitos (6 / 7 / 8 — 6 é o padrão), e — para TOTP — o período em segundos (predefinição 30). Para HOTP, defina o contador e clique em +1 para o avançar após cada uso.
- Clique em Gerar. O código aparece em grande com um anel de contagem decrescente a mostrar os segundos restantes no período atual; por baixo, a URI
otpauth://e um código QR escaneável.
Principais funcionalidades#
- TOTP e HOTP no mesmo sítio. Alterne entre as variantes baseada no tempo e baseada em contador sem reenserir o segredo.
- Manuseamento tolerante de Base32. Espaços, hífens, minúsculas e caracteres perdidos são limpos automaticamente, pelo que segredos copiados de formatos incómodos continuam a funcionar.
- Importação e exportação de URI. Cole uma URI
otpauth://para povoar todos os campos, ou copie a URI gerada para provisionar uma nova conta noutro lado. - Código QR em tempo real. Renderizado na página a partir da URI, pronto a escanear para qualquer aplicação de autenticação.
- Anel de contagem decrescente. Uma contagem decrescente visual até ao próximo rollover, para que saiba se o código que está prestes a escrever tem tempo suficiente.
- Zero envios. Geração, análise e renderização do QR são todas locais; o segredo nunca é transmitido.
Exemplo prático#
A semente de referência RFC 6238 é a string ASCII 12345678901234567890, que em Base32 é GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ. Escreva esse segredo, defina dígitos 8 e período 30, e os códigos correspondem exatamente aos vetores de teste publicados:
- SHA-1 no tempo = 59 segundos após a época →
94287082 - SHA-256 no mesmo instante →
46119246 - SHA-512 no mesmo instante →
90693936
No tempo = 1111111109 (uma data muito no futuro), SHA-1 produz 07081804. Estes são os mesmos valores conhecidos contra os quais a própria suíte de testes desta ferramenta verifica, pelo que são uma forma fiável de confirmar que um gerador está correto. Para 2FA do dia a dia, os serviços usam 6 dígitos, SHA-1 e um período de 30 segundos — mude os dígitos de volta para 6 e o mesmo segredo produz o código rotativo que uma aplicação de autenticação mostraria.
FAQ#
O meu código não corresponde ao da minha aplicação de telefone. O que está mal?#
Quase sempre o segredo ou o relógio. Primeiro confirme que o segredo Base32 é idêntico — copie-o de novo a partir da página de configuração do serviço, já que um único carácter errado muda tudo. Depois verifique os parâmetros: a maioria dos serviços usa SHA-1, 6 dígitos, período de 30 segundos; se o serviço usa SHA-256 ou 8 dígitos e tem SHA-1 / 6 selecionado, os códigos diferirão. Finalmente, certifique-se de que o relógio do seu dispositivo está correto — o TOTP tolera algum desvio, mas mais de cerca de 30 segundos de diferença parte-o.
Qual é a diferença entre TOTP e HOTP?#
TOTP usa o tempo atual como fator móvel, pelo que avança automaticamente a cada período. HOTP usa um simples contador que incrementa de cada vez que um código é consumido, pelo que ambas as partes têm de se manter sincronizadas sobre quantos códigos foram usados. TOTP é o que quase todos os fluxos de 2FA de consumidor usam hoje, porque não precisa de sincronização para além do relógio.
É seguro colocar o meu segredo numa página web?#
O segredo nunca sai desta página — geração, análise e renderização do QR correm todas localmente no seu navegador, sem chamada de rede. Dito isto, para um segredo de 2FA de produção que controla, a prática mais segura é gerá-lo e guardá-lo num ambiente em que confie totalmente em vez de qualquer página web, e manter os códigos de recuperação que o serviço lhe deu.
Porque é que colar a minha URI otpauth:// preenche tudo?#
Essa URI é o formato padrão que as aplicações de autenticação trocam: codifica o tipo, emissor, conta, segredo, algoritmo, dígitos e período (ou contador) numa só string. O analisador lê esses campos e povoa o formulário, que é exatamente o que acontece quando se escaneia um código QR com o telefone — o QR é apenas essa URI renderizada como imagem.