Generador TOTP

Introduce un secreto y genera códigos TOTP de dos factores en tu navegador — compatible con Google Authenticator y otras aplicaciones de autenticación.

Un código TOTP es el código de dos factores de 6 dígitos que cambia cada 30 segundos: la aplicación de autenticación y el servidor lo calculan cada uno por su cuenta a partir de un secreto compartido y la hora actual (RFC 6238). Pega el secreto Base32 de la pantalla de configuración de 2FA — o el enlace otpauth:// completo — y esta página muestra el código actual, el siguiente y un anillo de cuenta atrás, todo calculado en tu navegador: el secreto nunca se envía, se almacena ni se registra. La guía cómo funcionan los códigos TOTP explica las matemáticas y el problema del reloj; combina la página con el generador de contraseñas y tokens y el SSH Key Suite.

Última actualización:

Pega el secreto Base32 que se muestra al activar la autenticación de dos factores (los espacios se ignoran), o el enlace otpauth:// completo: su emisor, cuenta, algoritmo, dígitos y periodo se leen automáticamente. El código empieza en cuanto se añade un secreto válido.

--- ---

Introduce un secreto y el código aparecerá aquí automáticamente

Ajustes avanzados

🔒 Todos los cálculos se hacen localmente en tu navegador. Tu secreto nunca se envía a ningún servidor y nunca se almacena.

Comprobando tu reloj contra la hora del servidor…

Tus códigos

Aún no hay cuentas. Añade un secreto arriba y su código aparecerá aquí, actualizándose cada periodo. No se guarda nada: al recargar la página, la lista se borra.

Los límites, con honestidad

Esta página es una comodidad para códigos que ya son tuyos: un teléfono cargando en otra habitación, o un secreto que estás migrando entre aplicaciones de autenticación. No es un hogar seguro a largo plazo para secretos: lo que pegas vive en la memoria de esta pestaña hasta que la cierras, en una máquina cuyo resto de software también puede leer la memoria.

Un generador de códigos solo es tan fiable como el dispositivo y el navegador en el que se ejecuta. Para las cuentas que importan, guarda el secreto en una aplicación de autenticación dedicada o en una llave de hardware en un dispositivo que controles, usa esta página solo en un dispositivo de confianza y nunca en un ordenador compartido o público.

TOTP demuestra que tienes el secreto en el momento de iniciar sesión; no protege un secreto que ya se filtró. Si un secreto se pegó en un chat, un ticket o un generador del lado del servidor, trátalo como quemado: desactiva y vuelve a activar el 2FA en el servicio para emitir un secreto nuevo.

Cuándo es útil un generador TOTP en el navegador

El caso clásico es la configuración y la migración. Al activar la autenticación de dos factores, el servicio muestra un código QR y, tras un enlace de «¿no puedes escanearlo?», el secreto Base32 en bruto. Escribir ese secreto aquí y comparar el código con el que produce tu aplicación de autenticación demuestra que ambos dispositivos tienen el mismo secreto, antes de cerrar sesión y descubrir una discrepancia por las malas. La misma comprobación sirve al mover cuentas a un teléfono nuevo: vuelve a leer cada secreto, añádelo aquí y confirma que los códigos coinciden con la aplicación antigua, ventana a ventana.

También es la respuesta práctica cuando el teléfono no está a mano pero el secreto está guardado como debe en tu gestor de contraseñas: recupera el secreto, genera el código aquí e inicia sesión, sin debilitar la cuenta desactivando el 2FA. Servicios desde Google y GitHub hasta AWS y tu registrador de dominios usan el mismo esquema RFC 6238, así que un solo generador cubre todas las cuentas cuyo secreto tengas.

Qué contiene realmente el código QR

Cada código QR de autenticación es una sola línea de texto: una URI otpauth:// con el secreto, el emisor, el nombre de tu cuenta y los parámetros del código (algoritmo, dígitos, periodo). Por eso esta página acepta el enlace completo: pégalo y cada campo se rellena solo. Y por eso una captura del QR de configuración es tan sensible como la propia contraseña: quien lo escanee posee una copia permanente de tu segundo factor. Nunca compartas capturas de configuración y bórralas de las bibliotecas de fotos sincronizadas.

Dos detalles deciden si un código se acepta. El primero es el reloj: el generador y el servidor deben coincidir en la ventana actual de 30 segundos, y la mayoría de los servidores perdonan solo una ventana a cada lado, así que un reloj con un minuto de desviación falla siempre. El segundo son los parámetros: la mayoría de los servicios usan SHA-1, 6 dígitos y 30 segundos, pero algunos usan 8 dígitos o un periodo de 60 segundos; si los códigos de aquí nunca coinciden con el servicio, revisa los ajustes avanzados contra lo que indicaba su pantalla de configuración.

Términos TOTP, aclarados

TOTP. Contraseña de un solo uso basada en el tiempo (RFC 6238): un HMAC del contador de intervalos de tiempo, truncado dinámicamente a un código decimal corto.

HOTP. El algoritmo padre basado en contador (RFC 4226). TOTP es HOTP cuyo contador es el número de periodos desde la época Unix.

Base32. El alfabeto en el que se escriben la mayoría de los secretos 2FA (A–Z y 2–7). Un secreto de 32 caracteres transporta 20 bytes: 160 bits de material de clave.

otpauth://. El formato URI dentro de cada QR de configuración: tipo, etiqueta, secreto, emisor, algoritmo, dígitos y periodo, todo en una línea.

Intervalo de tiempo. Normalmente 30 segundos. El generador y el servidor deben caer en el mismo intervalo; la mayoría de los servidores también aceptan el anterior y el siguiente.

Truncamiento dinámico. El paso que convierte un HMAC de más de 20 bytes en un código corto: se cortan cuatro bytes desde un desplazamiento dado por el último medio byte del resumen.

SHA-1. Sigue siendo el hash HMAC por defecto para TOTP. La construcción sigue siendo sólida aquí porque la seguridad de HMAC no depende de la resistencia a colisiones.

Códigos de respaldo. Códigos de recuperación de un solo uso que un servicio emite al configurarlo. Saltan TOTP por completo: guárdalos como contraseñas, y nunca junto al secreto.

Desviación del reloj. La diferencia entre el reloj de un dispositivo y la hora real. Una desviación mayor que un periodo hace que cada código generado sea erróneo, por correcto que sea el secreto.

Preguntas frecuentes

¿Es seguro generar códigos 2FA en un navegador?

En esta página, el secreto nunca sale de tu navegador: los códigos se calculan en la memoria de la página con WebCrypto, no se sube, almacena ni registra nada, y al recargar se borra el secreto. El patrón inseguro es un generador del lado del servidor, donde tu secreto cruza la red y queda en los registros y bases de datos de otra persona. Incluso en local, usa un dispositivo de confianza: el secreto solo es tan seguro como la máquina en la que se escribe.

¿Por qué se rechaza mi código?

La mayoría de las veces, el reloj: si el dispositivo que genera el código y el servidor no coinciden en la ventana actual de 30 segundos, todos los códigos son erróneos. Revisa la tarjeta del reloj en esta página y activa la fecha y hora automáticas. Los siguientes sospechosos son los parámetros (un servicio que usa 8 dígitos o un periodo de 60 segundos) y un secreto obsoleto: si volviste a activar el 2FA, el secreto antiguo murió en ese momento.

¿Cuál es la diferencia entre TOTP y HOTP?

El contador. HOTP (RFC 4226) incrementa un contador con cada uso; TOTP (RFC 6238) deriva el contador del reloj, así que los códigos caducan solos. Las aplicaciones de autenticación y esta página hablan TOTP. Existen enlaces HOTP basados en contador, pero esta página los rechaza abiertamente en lugar de inventar un código.

¿Puede sustituir a mi aplicación de autenticación?

Mientras la página está abierta, produce códigos idénticos: las matemáticas son las mismas. Como hogar permanente, no: aquí no persiste nada, por diseño, y una pestaña del navegador no es donde debe vivir un secreto de larga duración. Guarda el secreto en tu aplicación de autenticación o gestor de contraseñas y usa esta página para comprobaciones de configuración, migraciones y emergencias.

Una vez pegué mi secreto en un chat. ¿Y ahora?

Trátalo como filtrado. Los chats se registran, se sincronizan y se pueden buscar, y quien tenga el secreto puede generar tus códigos para siempre. Ve al servicio, desactiva la autenticación de dos factores y vuelve a activarla para emitir un secreto nuevo, vuelve a registrar tu autenticador y revisa la actividad reciente de la cuenta. Después comprueba la propia contraseña en la comprobación de contraseñas filtradas.