Gerador de Códigos TOTP / 2FA
Gere um código TOTP/2FA a partir de um segredo Base32 — 100% no seu navegador, o segredo nunca sai do dispositivo. Configuração por QR + verificação de códigos.
Opções avançadas
O Que É um Gerador de Códigos TOTP / 2FA?
Um gerador de TOTP transforma um segredo compartilhado no código rotativo de uso único que impulsiona a autenticação de dois fatores. O TOTP — senha de uso único baseada em tempo, definida no RFC 6238 — pega um segredo Base32 e a hora atual, divide o tempo em passos fixos (30 segundos por padrão) e roda um HMAC sobre o contador de passos para derivar um código numérico curto. Como tanto o seu app autenticador quanto o servidor têm o mesmo segredo e leem o mesmo relógio, eles calculam o código idêntico sem nunca trocá-lo pela rede. Esse é todo o propósito da 2FA: mesmo que a sua senha vaze, um atacante ainda precisa do código que só o seu segredo pode produzir neste momento.
"The TOTP algorithm is a time-based variant of the HOTP algorithm... TOTP = HOTP(K, T), where T is an integer representing the number of time steps between the initial counter time T0 and the current Unix time." — RFC 6238, Section 4
Esta ferramenta faz três tarefas em uma única página. Ela gera um código ao vivo a partir de qualquer segredo Base32 com uma contagem regressiva e uma prévia do próximo código; ela configura um segredo totalmente novo, montando a URI otpauth:// e o código QR que você escaneia em um app autenticador; e ela verifica um código contra um segredo com tolerância de ±1 passo de tempo, igual a como servidores reais aceitam um código que acabou de rotacionar. Tudo isso roda pela API nativa Web Crypto do navegador, com zero dependências e zero chamadas de rede.
Desenvolvedores recorrem a um gerador de TOTP constantemente: para reproduzir o código exato que o app de um usuário mostra enquanto depuram um login 2FA, para montar um segredo e um QR para uma conta nova, para confirmar que uma janela de verificação no servidor corresponde ao que os usuários vivenciam, ou para construir fixtures determinísticas para testes de ponta a ponta de um fluxo de dois fatores. Como o segredo é uma chave de longa duração — qualquer um que o tenha pode gerar todos os códigos futuros —, ele deve ser protegido como uma senha. Combine esta ferramenta com o nosso gerador de senhas aleatórias para as senhas fortes e códigos de recuperação que acompanham a 2FA, e com o gerador de códigos QR quando você precisar de uma imagem de registro independente. Para assinar os JSON Web Tokens que muitas vezes acompanham uma sessão autenticada, veja o codificador JWT.
// Generate a TOTP code in the browser with the Web Crypto API
// (SHA-1, 6 digits, 30s period — RFC 6238 defaults)
async function generateTotp(base32Secret, time = Date.now()) {
// Decode the Base32 secret to raw bytes (A-Z, 2-7)
const alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';
let bits = '';
for (const c of base32Secret.replace(/=+$/, '').toUpperCase())
bits += alpha.indexOf(c).toString(2).padStart(5, '0');
const bytes = new Uint8Array(
bits.match(/.{8}/g).map((b) => parseInt(b, 2)));
// Counter = number of 30s steps since the Unix epoch (8-byte big-endian)
const counter = Math.floor(time / 1000 / 30);
const msg = new Uint8Array(8);
let c = counter;
for (let i = 7; i >= 0; i--) { msg[i] = c & 0xff; c = Math.floor(c / 256); }
const key = await crypto.subtle.importKey(
'raw', bytes, { name: 'HMAC', hash: 'SHA-1' }, false, ['sign']);
const hmac = new Uint8Array(await crypto.subtle.sign('HMAC', key, msg));
// Dynamic truncation (RFC 4226) -> 6-digit code
const off = hmac[hmac.length - 1] & 0x0f;
const bin = ((hmac[off] & 0x7f) << 24) | (hmac[off + 1] << 16) |
(hmac[off + 2] << 8) | hmac[off + 3];
return (bin % 1_000_000).toString().padStart(6, '0');
}
const code = await generateTotp('JBSWY3DPEHPK3PXP');
// -> a 6-digit code that rotates every 30 seconds Principais Recursos
Código ao Vivo com Contagem Regressiva
Cole um segredo Base32 e o código TOTP atual aparece na hora com um anel de contagem regressiva de 30 segundos e uma prévia do próximo código — sem botão Gerar, sem espera.
Configuração de Segredo e QR
Gere um segredo Base32 aleatório e obtenha a URI otpauth:// e um código QR para escanear direto no Google Authenticator, no Authy ou no 1Password.
Verificador de Códigos Integrado
Cheque um código contra um segredo com a mesma tolerância de ±1 passo de tempo que servidores reais usam, para que um código que acabou de rotacionar ainda seja validado.
Algoritmo e Dígitos Configuráveis
Alterne entre SHA-1, SHA-256 e SHA-512, escolha 6 ou 8 dígitos e defina um período de 30s ou 60s para atender às exigências de qualquer provedor.
O Segredo Nunca Sai do Seu Navegador
Cada código é calculado localmente pela API nativa Web Crypto. Nada é enviado, registrado ou armazenado — de forma verificável, mesmo offline.
Zero Dependências
Construído apenas sobre a API Web Crypto do navegador — sem bibliotecas de terceiros, sem telemetria e sem chamadas de rede de qualquer tipo.
Exemplos do Gerador de TOTP
TOTP Padrão de 6 Dígitos (SHA-1, 30s)
secret: JBSWY3DPEHPK3PXP algorithm: SHA-1 digits: 6 period: 30s
Code: 282760 · expires in 30s
O segredo de teste canônico do RFC 6238 com as configurações padrão que todo app convencional usa — SHA-1, 6 dígitos, um período de 30 segundos. O código é baseado em tempo, então o valor exato depende da hora atual; a ferramenta mostra uma contagem regressiva ao vivo e o próximo código.
TOTP Empresarial de 8 Dígitos (SHA-256)
secret: JBSWY3DPEHPK3PXP algorithm: SHA-256 digits: 8 period: 30s
Code: 31094217 · expires in 30s
Alguns sistemas empresariais e de alta segurança emitem códigos de 8 dígitos assinados com SHA-256 em vez do SHA-1 padrão. Faça o algoritmo, a contagem de dígitos e o período corresponderem exatamente ao que o seu servidor espera, ou o código gerado não será validado.
URI de Configuração otpauth:// para Apps Autenticadores
issuer: Acme account: alice@example.com secret: JBSWY3DPEHPK3PXP
otpauth://totp/Acme:alice@example.com?secret=JBSWY3DPEHPK3PXP&issuer=Acme&algorithm=SHA1&digits=6&period=30
A ferramenta monta uma URI otpauth:// padrão e a exibe como código QR. Escaneie-a com o Google Authenticator, o Authy ou o 1Password — ou cole a URI diretamente — para registrar o segredo no seu dispositivo.
Como Usar o Gerador de TOTP
- 1
Cole um Segredo Base32
Na aba Gerar, cole o seu segredo Base32 (por exemplo JBSWY3DPEHPK3PXP). O código TOTP atual aparece na hora com uma contagem regressiva de 30 segundos — sem botão Gerar.
- 2
Ajuste as Opções Avançadas (opcional)
Abra as opções avançadas para mudar o algoritmo (SHA-1/256/512), a contagem de dígitos (6 ou 8) ou o período (30 ou 60s) para corresponder ao que o seu provedor emitiu.
- 3
Configure ou Verifique
Use a aba Configurar para gerar um segredo e um QR para um app autenticador, ou a aba Verificar para checar um código contra um segredo com tolerância de ±1 passo de tempo.
Erros Comuns
Algoritmo ou Dígitos Incompatíveis
Um segredo emitido para SHA-256 ou 8 dígitos produz um código completamente diferente sob os padrões de SHA-1 / 6 dígitos. Faça os parâmetros do provedor corresponderem exatamente.
secret + SHA-1/6 digits // but server expects SHA-256/8
algorithm: SHA-256, digits: 8 // match the otpauth:// URI
Desvio de Relógio
Se o relógio do dispositivo estiver fora por mais de um passo de tempo, o código não será validado. Sincronize o relógio do sistema antes de comparar códigos.
system clock 90s fast // code is two steps ahead
enable NTP / automatic time // code aligns with server
Segredo Base32 Inválido
O Base32 usa apenas A–Z e 2–7. Espaços de uma chave impressa são aceitáveis, mas um 0, 1 ou 8 não é Base32 válido e não será decodificado.
secret: "JBSW 0NE8" // contains 0 and 8
secret: "JBSWY3DPEHPK3PXP" // valid Base32
Casos de Uso Comuns
- Depurar um Fluxo de Login 2FA
- Reproduza o código exato que o app autenticador de um usuário mostra para rastrear por que um login de dois fatores está sendo rejeitado.
- Registrar uma Conta Nova
- Gere um segredo Base32 e um código QR novos e então escaneie-os no Google Authenticator, no Authy ou no 1Password para configurar a 2FA.
- Validar a Janela do Seu Servidor
- Verifique códigos contra um segredo para confirmar que o seu backend aceita um código que acabou de rotacionar e rejeita um expirado.
- Construir Fixtures de Testes de Ponta a Ponta
- Calcule códigos TOTP determinísticos a partir de um segredo conhecido para impulsionar testes automatizados de um fluxo de autenticação de dois fatores.
- Corresponder a Configurações Empresariais
- Reproduza códigos de 8 dígitos ou SHA-256 quando um provedor se afasta dos padrões de SHA-1 / 6 dígitos, para depurar uma divergência.
- Recuperar o Acesso Rapidamente
- Gere o código atual a partir de um segredo guardado quando o seu celular não estiver disponível — usando uma cópia descartável do segredo.
Detalhes Técnicos
- Conforme ao RFC 6238 / RFC 4226
- Implementa o TOTP conforme o RFC 6238 sobre o algoritmo de truncamento dinâmico do HOTP do RFC 4226, com SHA-1, SHA-256 e SHA-512 selecionáveis.
- HMAC Nativo do Web Crypto
- Os códigos são derivados via HMAC do crypto.subtle sobre o contador de passos de tempo big-endian. A decodificação Base32 e o truncamento rodam inteiramente no navegador.
- URIs otpauth:// Padrão, Zero Dependências
- As URIs de configuração seguem o Key Uri Format (otpauth://totp) com parâmetros de emissor, algoritmo, dígitos e período. Sem bibliotecas externas, sem chamadas de rede.
Boas Práticas
- Trate o Segredo Como uma Senha
- Qualquer um com o segredo Base32 pode gerar todos os códigos futuros. Guarde-o em um gerenciador de segredos, nunca no controle de versão, e prefira segredos de teste aqui.
- Mantenha os Relógios Sincronizados
- O TOTP depende de hora precisa. Ative a sincronização de hora pela rede em servidores e dispositivos para que os códigos coincidam dentro da janela de verificação.
- Fique nos Padrões a Menos que Seja Necessário
- SHA-1, 6 dígitos e um período de 30 segundos maximizam a compatibilidade com os apps. Mude para 8 dígitos ou SHA-256/512 apenas quando o seu provedor exigir.
Perguntas Frequentes do Gerador TOTP / 2FA
É seguro usar um gerador de TOTP / 2FA online?
otpauth:// e o código gerado são todos calculados localmente com a API nativa Web Crypto. Não há requisições de rede, nem registros, nem armazenamento, nem análises ligadas à sua entrada — você pode verificar isso desconectando-se da internet e vendo a ferramenta continuar funcionando. Isso é o oposto de um gerador duvidoso que envia o seu segredo por POST para um servidor, onde o operador poderia gerar os seus códigos para sempre. Um segredo TOTP é uma chave compartilhada de longa duração, então o hábito mais seguro continua sendo preferir segredos descartáveis ou de teste quando você só precisa experimentar. O que é TOTP e o que é um segredo Base32?
JBSWY3DPEHPK3PXP é o conhecido segredo de teste do RFC. Por que o código gerado é diferente do app autenticador do meu celular?
Qual é a diferença entre TOTP e HOTP?
Posso usar códigos de 8 dígitos ou SHA-256 / SHA-512?
otpauth:// que a ferramenta gera registra esses parâmetros para que o seu app registre o segredo corretamente. Como adiciono este segredo ao Google Authenticator, ao Authy ou ao 1Password?
otpauth://. No Google Authenticator ou no Authy, toque no botão de adicionar e escolha Ler um código QR para apontar a câmera para o QR na tela, ou escolha Inserir uma chave de configuração e cole o segredo Base32 com o nome de conta e o algoritmo correspondentes. No 1Password, edite um item de login, adicione um campo Senha de Uso Único e cole a URI otpauth:// diretamente. Precisa de uma imagem QR independente para documentação? Use o nosso gerador de códigos QR, e para os segredos aleatórios e códigos de recuperação que o acompanham, o gerador de senhas aleatórias. Ferramentas relacionadas
Ver todas as ferramentas →Gerador e Verificador de Hash Bcrypt
Ferramentas de Segurança
Gere e verifique hashes bcrypt de senha online — custo ajustável, prefixos $2b$/$2a$/$2y$. 100% no seu navegador; sua senha nunca é enviada.
Decodificador JWT
Ferramentas de Segurança
Decodifique tokens JWT online com nosso decodificador JWT grátis. Inspecione cabeçalho, carga útil, assinatura, expiração e reivindicações. 100% navegador — seu token nunca sai do dispositivo. Sem cadastro, sem rastreio.
Codificador e Gerador JWT
Ferramentas de Segurança
Gerador e codificador JWT online grátis. Monte o cabeçalho e a carga útil, assine com HS256, RS256 ou ES256 instantaneamente. 100% no navegador — seu segredo e sua chave nunca saem do dispositivo.
Gerador de Segredo JWT — HS256/384/512
Ferramentas de Segurança
Gere um segredo JWT forte e correto pela RFC para HS256/384/512 — 100% no navegador, nunca enviado a um servidor. base64url, base64 ou hex; copie para o .env.
Gerador de Hash MD5 e Ferramenta de Checksum
Ferramentas de Segurança
Gere hashes MD5, SHA-256, SHA-1 e SHA-512 online gratuitamente. Faça hash de texto ou arquivos no navegador, verifique checksums e copie resultados. Sem cadastro necessário.
Gerador de Senhas Aleatórias — Forte e Seguro
Ferramentas de Segurança
Gere senhas aleatórias fortes instantaneamente — grátis, sem cadastro, 100% no navegador. Personalize comprimento e tipos de caracteres, gere em lote até 50. Medidor de força com análise de entropia.