Senhas aleatórias com letras, dígitos e símbolos via crypto.getRandomValues.
Gerador de códigos TOTP/HOTP
A ferramenta em si está em inglês; esta página explica como usá-la no seu idioma.
Use Gerador de códigos TOTP/HOTP
O que ele faz
Gere senhas de uso único baseadas no tempo (TOTP) ou em contador (HOTP) para um segredo em Base32, da mesma forma que os aplicativos autenticadores fazem, e verifique se um código é válido. Útil para testar sua própria configuração de autenticação de duas etapas (2FA).
Ele funciona inteiramente no seu navegador: nada do que você digitar é enviado.
Como usar Gerador de códigos TOTP/HOTP
- Digite o segredo. Cole o segredo Base32 da sua própria conta de teste em Secret key (Base32), ou clique em Random para um novo segredo de 32 caracteres.
- Adapte as configurações do seu aplicativo. Escolha o tipo de código (TOTP, baseado em tempo, ou HOTP, baseado em contador), o algoritmo e o número de dígitos. A maioria dos aplicativos autenticadores usa TOTP, HMAC-SHA-1 e 6 dígitos.
- Mostrar o código. Para o TOTP, pressione “Iniciar TOTP”: o código é exibido com uma contagem regressiva e é recalculado a cada segundo. Para o HOTP, defina o contador e pressione “Mostrar código HOTP”; “Próximo” avança para o contador seguinte.
- Verificar um código. Digite um código do seu aplicativo ou de um servidor no campo “Verificar um código” e clique em “Verificar”. O resultado indica se o código está correto e para qual intervalo de tempo ou contador.
- Parar e liberar. Aperte o botão “Stop” quando terminar; o último código permanece na tela. Limpe você mesmo o campo secreto.
Exemplo
Segredo de teste da RFC 6238
GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ412568Esta é a chave de teste 12345678901234567890 publicada na RFC 6238, no formato Base32. A página exibe seu código atual de seis dígitos e os segundos que faltam até o próximo; esse é o mesmo código que um aplicativo autenticador exibe para esse segredo; ao mudar para HOTP com o contador em 0, ela exibe 755224, o primeiro valor de teste da RFC 4226.
O que ele verifica
| Sinal | O que isso significa |
|---|---|
| O código | HMAC do intervalo de tempo (TOTP) ou do contador (HOTP), reduzido a 6 ou 8 dígitos, conforme as normas RFC 4226 e RFC 6238. Ele só é compatível com um aplicativo quando o tipo, o algoritmo e o número de dígitos forem os mesmos. |
| Atualizações em Ns · intervalo de tempo N | Segundos restantes na janela atual de 30 segundos e o número da etapa, obtido a partir do relógio do seu dispositivo. Um relógio desajustado exibe o código anterior ou o seguinte. |
| Contador N · pressione “Avançar” | No modo HOTP, o código pertence a esse contador. Cada código é usado uma única vez; em seguida, os servidores aguardam o próximo contador. |
| Não é Base32: ... | A senha contém caracteres que não fazem parte do conjunto A–Z e 2–7, como 0, 1, 8 ou 9. Espaços, hífens e o sinal = são ignorados, e letras minúsculas são aceitas. |
| o segredo tem apenas N bits | O segredo tem menos de 128 bits (26 caracteres Base32) exigidos pela RFC 4226. Os códigos continuam sendo exibidos, mas um segredo desse tipo é mais fácil de adivinhar. |
| Válido: corresponde a ... | Verifique se o código correspondente ao passo de tempo atual ou ao contador HOTP foi encontrado no campo. |
| Válido para a etapa anterior ou seguinte | O código corresponde a um intervalo de 30 segundos antes ou depois do momento atual (indicado em âmbar). Normalmente, há uma pequena diferença de horário entre os dois dispositivos. |
| Não foi encontrado nenhum resultado | Nem os intervalos de tempo verificados nem os contadores batem. Verifique o segredo, o relógio, o algoritmo e o número de dígitos. |
Mais exemplos
Chave de teste RFC 4226, HOTP
GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQCom o tipo de código HOTP, HMAC-SHA-1, 6 dígitos e contador 0, o código é 755224; o comando “Next” retorna 287082 para o contador 1, os valores de teste publicados na RFC 4226.
Verificar um código um contador à frente
GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQNo modo HOTP com o contador em 0, ao digitar 287082 na opção “Verificar um código”, aparece a mensagem: “Válido para o contador 1”, ou seja, 1 a mais do que o valor do contador.
Não é um segredo em Base32
0189ERRO com a mensagem “Não é Base32: ‘0’, ‘1’, ‘8’, ‘9’”, pois o Base32 utiliza apenas as letras A–Z e os algarismos 2–7.
Perguntas frequentes
O que exatamente ele calcula?
Códigos TOTP a partir da hora atual em intervalos de 30 segundos (RFC 6238) ou códigos HOTP para um contador definido por você (RFC 4226), com HMAC-SHA-1, SHA-256 ou SHA-512 e 6 ou 8 dígitos; a maioria dos aplicativos autenticadores usa SHA-1 e 6 dígitos. Verifique se um código corresponde ao intervalo de tempo atual e a um intervalo para cada lado, ou ao contador HOTP e aos 9 seguintes; um código com caracteres fora do intervalo A-Z e 2-7 é rejeitado com uma mensagem.
Um código TOTP me protege contra phishing?
Não totalmente. Kits de phishing adversary-in-the-middle repassam o código ao site real enquanto você o digita, então ele é capturado junto com a senha; passkeys e chaves de segurança FIDO2 resistem a isso porque ficam vinculadas ao domínio real.
O segredo é enviado ou armazenado em algum lugar?
Não. Os códigos são gerados no seu navegador por meio da API Web Crypto, e o segredo nunca é enviado nem salvo. O TOTP depende do relógio do seu dispositivo; portanto, um relógio desajustado gera códigos diferentes.
Como posso comparar os códigos com os RFCs?
Use a chave de teste 12345678901234567890, em Base32: GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ. No modo HOTP, o contador 0 resulta em 755224 e o contador 1 resulta em 287082 (RFC 4226). A RFC 6238 lista 94287082 para 8 dígitos aos 59 segundos após 1º de janeiro de 1970 UTC; o modo TOTP sempre utiliza a hora atual.
Qual é a diferença entre TOTP e HOTP?
O HOTP (RFC 4226) conta o número de utilizações: cada código pertence a um contador que aumenta em um. O TOTP (RFC 6238) é um HOTP em que o contador é definido para o intervalo de tempo atual de 30 segundos, de modo que o código muda conforme o relógio.
Por que o meu app mostra um código diferente?
Verifique primeiro os relógios, pois uma diferença de 30 segundos altera o código. Em seguida, verifique se há erros de digitação no segredo e se a conta usa SHA-256, SHA-512, 8 dígitos ou um contador em vez da hora, e defina as mesmas opções aqui.
Devo colar um segredo 2FA real aqui?
Evite. O segredo fica no seu navegador, mas qualquer pessoa que o veja ou copie pode gerar os seus códigos até você redefinir a 2FA naquela conta. Para levar a 2FA para um celular novo, use a opção de transferência ou de redefinição da própria conta.