Gerador de códigos TOTP

Gere códigos 2FA (RFC 6238) de uma chave Base32, com contagem regressiva ao vivo.

Não cole a chave de uma conta real num site que você não consegue verificar. Esta página roda no seu navegador e nunca guarda a chave, mas você precisa confiar nela.

Código atual

Digite uma chave secreta para ver o código.

O que esta ferramenta faz

A maioria dos códigos de login em duas etapas são códigos TOTP: seis dígitos que mudam a cada 30 segundos, calculados com uma chave compartilhada e a hora atual. Esta ferramenta gera esses mesmos códigos no seu navegador. Cole a chave secreta (escrita em Base32, com letras de A a Z e dígitos de 2 a 7) ou um link otpauth:// inteiro e você vê o código atual com um anel que conta o tempo até o próximo, além do código anterior e do seguinte. Serve para quem desenvolve ou testa dois fatores, para conferir se a chave foi copiada certo e para quem tem uma chave guardada e precisa de um código.

Como usar

  1. Digite ou cole a chave. Espaços, hifens, minúsculas e um = no final são aceitos. Se houver um caractere errado, a ferramenta diz qual é e onde está.
  2. Ou cole um link otpauth://totp/... no segundo campo. Ele preenche a chave, o algoritmo, os dígitos e o período, e apaga o link da tela.
  3. Não mude as configurações a menos que o serviço peça: SHA-1, 6 dígitos e 30 segundos é o que quase todos usam.
  4. Clique em Copiar para copiar o código sem o espaço do meio.

Como um código é feito

A chave vira bytes. O número de períodos completos desde 1º de janeiro de 1970 (UTC) forma um contador de 8 bytes. O HMAC do contador com a chave dá um valor de 20 bytes (com SHA-1). Os quatro últimos bits escolhem um deslocamento, quatro bytes a partir dele são lidos como um número sem o bit mais alto, e o resto da divisão por um milhão (seis dígitos) é o código, com zeros à esquerda se preciso. Uma conferência: a chave de teste da RFC 6238 é o texto 12345678901234567890, que em Base32 é GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ. No segundo 59 o contador é 1 e, com SHA-1 e oito dígitos, o código é 94287082; com seis dígitos, 287082.

Os serviços descrevem uma chave com um link otpauth, que é o conteúdo do QR da tela de configuração. Ele pode trazer emissor, nome da conta, algoritmo, dígitos (6 a 8) e período. Alguns apps ignoram essas opções e usam sempre SHA-1, seis dígitos e 30 segundos; se um código não bate com o seu app, tente esses valores. Para ler o link de uma imagem QR use o leitor de QR code e cole aqui. Um link de códigos por contador (HOTP) é reconhecido e recusado.

Segurança

Uma chave TOTP vale tanto quanto uma senha: quem a tem gera seus códigos para sempre. Não cole a chave de uma conta real, como a do banco ou do e-mail principal, em nenhum site, inclusive neste. A página roda no seu navegador, não envia a chave, não a guarda no armazenamento nem na barra de endereço e a esquece ao fechar a aba, mas você não consegue verificar isso de fora. Use com contas de teste e guarde as chaves reais num app autenticador ou num gerenciador de senhas. Veja também o gerador de senhas e a criptografia de texto.

Quando um código é recusado

O código depende do relógio do aparelho. Se o relógio estiver um minuto errado, o código é de outro período e o serviço o recusa; ative a hora automática. O código anterior e o seguinte aparecem para você ver se o serviço aceita um período vizinho. Confira também se a chave não perdeu um caractere: uma chave errada continua gerando códigos, só que não os certos.

Perguntas frequentes

É seguro colar minha chave 2FA aqui?

Para uma conta real, nenhum site é um bom lugar. Esta página faz tudo no seu navegador e não guarda nem envia a chave, mas você não consegue provar isso de fora, e uma chave vazada permite gerar seus códigos. Use com chaves de teste.

Por que meu código não bate com o app?

Confira nesta ordem: o relógio do aparelho (hora automática), a chave (um caractere errado dá códigos errados) e as configurações. Alguns apps ignoram o algoritmo, os dígitos e o período do link e usam sempre SHA-1, seis dígitos e 30 segundos.

Qual a diferença entre TOTP e HOTP?

O HOTP (RFC 4226) gera um código a partir de um contador que aumenta a cada uso. O TOTP (RFC 6238) troca o contador pela hora atual dividida em períodos, de 30 segundos por padrão. Esta ferramenta gera apenas TOTP.

A chave é guardada ou enviada para algum lugar?

Não. A chave fica só na memória da página enquanto ela está aberta. Não é gravada no armazenamento local, em cookies nem na barra de endereço, e não vai para nenhum servidor.