Gerador OTP

O Gerador OTP calcula passcodes de uso único a partir de um segredo partilhado Base32 — o mesmo mecanismo que Google Authenticator, Authy e 1Password usam. TOTP atualiza-se a cada 30 segundos; HOTP avança sob demanda a partir de um contador que tu controlas. Útil para testar fluxos 2FA ou ter um código de backup quando a tua app autenticadora não está disponível.

Built by Bob Article by Lace QA by Ben Shipped

Como usar

  1. 1

    Escolhe TOTP (baseado no tempo, padrão) ou HOTP (baseado em contador).

  2. 2

    Cola o teu segredo Base32. Se estás a testar, clica em 'Gerar aleatório' para um novo.

  3. 3

    TOTP: o código atualiza-se a cada 30 segundos. HOTP: incrementa o contador manualmente.

  4. 4

    Toca em Copiar código para obter o OTP de 6 dígitos.

Perguntas frequentes

Ratings & Reviews

Rate this tool

Sign in to leave a written review.
Loading reviews…

Quando você ativa a verificação em duas etapas num e-mail, numa rede social ou num sistema da empresa, o site mostra um QR code e uma chave de texto. Essa chave é o segredo que faz o seu aplicativo autenticador mostrar um código OTP novo a cada 30 segundos. Este gerador de código OTP faz a mesma conta no navegador: cole a chave e o código TOTP aparece na hora, igual ao do celular. É o que dev brasileiro usa para testar o login de um app sem ficar passando o celular pela equipe. Um aviso logo de cara: o código que o seu banco manda por SMS não sai de nenhum gerador. Ele é criado no servidor do banco.

O que é um gerador de OTP?

Um gerador de OTP transforma um segredo compartilhado numa senha de uso único: o código de 6 dígitos que o aplicativo autenticador mostra quando você entra com autenticação de dois fatores. Cole um segredo Base32 no Gerador OTP e ele mostra o mesmo código que o seu aplicativo autenticador mostraria para aquele segredo, agora. Tudo roda no seu navegador. Nada do que você cola é enviado para lugar nenhum.

Existem dois tipos de senha de uso único, e a ferramenta faz os dois:

  • TOTP (baseado em tempo, RFC 6238). O código muda a cada 30 segundos. É o que Google Authenticator, Microsoft Authenticator, Authy e 1Password usam em quase todas as contas.
  • HOTP (baseado em contador, RFC 4226). O código muda quando um contador sobe uma unidade, normalmente quando você aperta o botão de um token físico.

Os dois usam a mesma matemática. A única diferença é a parte que se move: o relógio ou um contador. Os códigos aqui usam HMAC-SHA1 e 6 dígitos, a configuração que quase todo serviço usa por padrão.

Como usar o Gerador OTP

  1. Escolha um modo. O TOTP já vem selecionado quando a página abre. Mude para HOTP se estiver testando um token baseado em contador.
  2. Informe um segredo. A caixa já começa com um segredo aleatório, então tem um código na tela antes de você digitar qualquer coisa. Cole o seu próprio segredo Base32 por cima ou clique em Gerar aleatório para um novo. Os segredos aleatórios têm 32 caracteres, ou seja, 160 bits.
  3. Leia o código. No modo TOTP, uma barra faz a contagem regressiva até o próximo limite de 30 segundos, e o código se atualiza sozinho quando ela zera. No modo HOTP, digite um valor de contador ou aperte + Próximo para subir uma unidade.
  4. Copie. Copiar código coloca os 6 dígitos na área de transferência. O ícone de copiar ao lado do segredo copia o segredo.

A caixa do segredo perdoa colagem bagunçada. Ela converte minúsculas em maiúsculas e tira os espaços enquanto você digita, então gezd gnbv ... copiado de uma tela de configuração funciona igual à versão limpa. O ícone de olho esconde o segredo se alguém estiver olhando por cima do seu ombro.

É só isso. Sem conta, sem instalação, sem etapa de "conectar seu autenticador". A maioria das ferramentas para testar 2FA fica dentro de uma plataforma de desenvolvimento que cobra por usuário. Esta aqui é uma caixa de texto e um número.

Como os códigos TOTP e HOTP são calculados

Todo código sai dos mesmos quatro passos:

  1. Decodificar o segredo Base32 em bytes.
  2. Rodar HMAC-SHA1 sobre um contador de 8 bytes, usando o segredo como chave. Isso dá 20 bytes.
  3. Usar os últimos 4 bits do resultado para escolher uma posição inicial e ler 4 bytes a partir dali como um número. A RFC 4226 chama isso de truncamento dinâmico.
  4. Ficar com os últimos 6 dígitos desse número. Esse é o seu código.

No HOTP, o contador é o número que você informa. No TOTP, o contador é o horário Unix atual dividido por 30, arredondado para baixo. Ou seja, um código TOTP é só um código HOTP em que o relógio escolhe o contador. No horário Unix 59, o contador TOTP é 1, e o código TOTP é igual ao código HOTP do contador 1.

Exemplo prático: os vetores de teste oficiais

As duas RFCs publicam valores de teste para o segredo 12345678901234567890 (20 bytes ASCII). Em Base32, ele fica GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ. Cole, mude para HOTP e avance o contador:

Contador HOTPCódigo nesta ferramentaRFC 4226, Apêndice D
0755224755224
1287082287082
2359152359152
3969429969429
9520489520489

O modo TOTP sempre usa o horário atual, então você não consegue digitar um horário do passado. Mesmo assim dá para conferir os valores da RFC 6238: divida o horário por 30, arredonde para baixo e informe o resultado como contador HOTP. A RFC 6238 lista códigos de 8 dígitos. A ferramenta mostra 6, que são os últimos 6 dígitos do mesmo número.

Horário UnixContador (horário ÷ 30)RFC 6238 (8 dígitos, SHA-1)Esta ferramenta (6 dígitos)
59194287082287082
11111111093703703607081804081804
12345678904115226389005924005924
20000000006666666669279037279037

Se esses valores batem na sua tela, a matemática está certa. Qualquer diferença com um serviço real vem das entradas: o segredo, o relógio ou as configurações.

Segredos que a ferramenta aceita, e por que os códigos não batem

Esta é a seção para ler quando um código não é aceito. Veja o que conferir primeiro.

O segredo precisa ter pelo menos 128 bits

A ferramenta recusa segredos com menos de 16 bytes, o que dá 26 caracteres Base32. Essa regra vem da biblioteca otplib, que faz o cálculo, e a própria RFC 4226 exige pelo menos 128 bits. O famoso segredo de demonstração de 16 caracteres, JBSWY3DPEHPK3PXP, tem só 10 bytes. Cole e você vê "Secret must be at least 16 bytes (128 bits), got 10 bytes" no lugar de um código. Os segredos comuns de 32 caracteres funcionam normalmente. O teto é 64 bytes, ou 103 caracteres.

Só valem A–Z e 2–7

O Base32 (RFC 4648) usa as 26 letras e os dígitos de 2 a 7. Os dígitos 0, 1, 8 e 9 não fazem parte dele, então um segredo com eles tem erro de digitação ou nem é Base32. Letras como O, I e L são válidas, e é por isso que as pessoas leem segredos errado na tela. Se um segredo tem um 0, provavelmente é um O.

As configurações são fixas: SHA-1, 6 dígitos, 30 segundos

Esses são os padrões da RFC 6238 e de quase todo autenticador para o público. Alguns sistemas usam SHA-256, SHA-512, 8 dígitos ou um período de 60 segundos. A ferramenta não muda para essas configurações, então os códigos dela não vão bater com esses sistemas. Confira o link otpauth:// do serviço: ele traz os parâmetros algorithm=, digits= e period= quando eles fogem do padrão.

Seu relógio está errado

O TOTP depende de os dois lados concordarem sobre a hora. Se o relógio do seu computador estiver alguns segundos fora, a contagem regressiva e o código não vão bater com o celular. Ative a hora automática nas configurações do sistema e recarregue a página.

Teste rápido para um código que não bate: coloque o mesmo segredo nesta ferramenta e no seu aplicativo autenticador. Se os dois concordam e o servidor recusa o código, o servidor usa outras configurações ou outro segredo. Se os dois discordam, confira primeiro o relógio.

OTP falso, códigos por SMS e tokens físicos

Muita gente procura "gerador de OTP falso" ou "gerador de OTP aleatório". Veja o que isso pode e não pode querer dizer.

Clique em Gerar aleatório e você recebe um código TOTP de verdade, a partir de um segredo novinho. Serve como dado de teste: um código de 6 dígitos com cara de válido para um formulário, uma demonstração ou um print. E funciona de ponta a ponta. Adicione o mesmo segredo num aplicativo autenticador e os dois mostram códigos iguais. Se você só precisa de seis dígitos aleatórios sem segredo por trás, o gerador de números aleatórios é a ferramenta mais simples.

O que nenhum gerador de OTP faz é criar um código para a conta de outra pessoa. O código depende do segredo daquela conta, e só o serviço e o dono da conta têm esse segredo. Um código feito com qualquer outro segredo é só um número de seis dígitos para o servidor.

O mesmo vale para os códigos de verificação por SMS. Um banco ou aplicativo escolhe esses códigos no próprio servidor e manda para você por mensagem. Do seu lado não existe segredo nenhum para calcular. Um "gerador de código de verificação" não consegue prever esses números.

Tokens OTP físicos são chaveirinhos com um botão ou uma telinha. Eles guardam o segredo lacrado dentro do aparelho. Se o fornecedor te passou a semente do token (alguns passam, para importar num servidor), o modo HOTP daqui reproduz os códigos dele. Sem a semente, nada reproduz.

Quem usa um gerador de OTP

  • Quem desenvolve 2FA. Gere um segredo, guarde para um usuário de teste e compare o código que o seu servidor espera com o que aparece aqui.
  • Quem faz QA. Entre numa conta de teste com 2FA ativado sem ficar passando um celular pela equipe.
  • Quem guardou a chave de configuração. Se você anotou o segredo quando ativou o 2FA, ele continua gerando os seus códigos num aparelho novo. Para funcionar aqui, ele precisa ter 128 bits ou mais.
  • Os curiosos. Avance pelos vetores das RFCs acima e veja o algoritmo fazer exatamente o que o padrão diz.

Um cuidado. O segredo de uma conta real é tão sensível quanto a senha dela. Esta página nunca envia o segredo para lugar nenhum, mas não guarde ele numa nota, num chat ou num documento compartilhado. Para outros segredos e sequências, o gerador de senhas e o gerador de tokens também rodam no navegador. Para tirar o segredo de um QR code de configuração, o leitor de QR code decodifica o código até o link otpauth://.

Perguntas frequentes

Por que meu segredo de 16 caracteres dá erro?

Um segredo Base32 de 16 caracteres tem 80 bits, e a ferramenta exige pelo menos 128 bits (26 caracteres). O erro diz "Secret must be at least 16 bytes (128 bits), got 10 bytes". A maioria dos serviços hoje entrega segredos de 32 caracteres, que funcionam. Um segredo antigo de 80 bits continua funcionando no seu aplicativo autenticador, mas esta ferramenta não aceita.

Dá para gerar códigos de 8 dígitos ou usar SHA-256?

Não. A ferramenta é fixa em 6 dígitos, HMAC-SHA1 e período de 30 segundos, os padrões das RFCs que os autenticadores para o público usam. Um sistema configurado com 8 dígitos, SHA-256 ou SHA-512, ou período de 60 segundos vai gerar códigos diferentes.

Por quanto tempo um código TOTP vale?

Cada código pertence a uma janela de 30 segundos, que começa num múltiplo exato de 30 segundos do horário Unix. A barra de contagem mostra quanto falta da janela. Muitos servidores também aceitam o código da janela anterior ou da seguinte, para dar conta de quem digita devagar e de pequenas diferenças de relógio. Isso é configuração do servidor, não algo que o código controla.

Como tiro o segredo de um link otpauth://?

Procure o parâmetro secret=. Em otpauth://totp/Example:alice?secret=GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ&issuer=Example, o segredo é tudo o que fica entre secret= e o próximo &. Cole essa parte na ferramenta. Se você só tem o QR code, decodifique para o link primeiro.

Por que TOTP e HOTP mostram o mesmo código para o mesmo segredo?

Às vezes mostram, e está certo. TOTP é HOTP com o contador igual ao horário Unix dividido por 30. Quando o seu contador HOTP é igual ao intervalo de tempo atual, os dois modos calculam o mesmo número.

A ferramenta continua funcionando depois que eu fecho?

Não. Nada fica salvo. Feche a aba e o segredo e o código somem, então guarde a sua própria cópia de qualquer segredo de que vai precisar depois.