Generador de códigos TOTP / HOTP sin conexión

Genera contraseñas de un solo uso TOTP RFC 6238 (6/8 dígitos, 30/60 s) y HOTP RFC 4226 (por contador) a partir de un secreto base32, sin conexión, con HMAC-SHA1/256/512, y exporta una URI otpauth://

Introduce el secreto compartido en base32 (el que aparece junto al código QR en Google Authenticator / Authy) y la herramienta calcula las contraseñas localmente, sin enviar nada a ningún servidor.

Compatible con:

  • TOTP (RFC 6238): códigos basados en el tiempo UNIX actual y un paso (30 s o 60 s). Es lo que muestra Google Authenticator para la mayoría de cuentas 2FA.
  • HOTP (RFC 4226): códigos basados en un contador compartido.
  • Algoritmos HMAC: SHA-1 (predeterminado del RFC), SHA-256, SHA-512.
  • Salida de 6 dígitos (por defecto) u 8.
  • "Mostrar próximos N códigos": previsualiza varias ventanas TOTP o contadores HOTP, útil para probar derivas.
  • Exporta una URI otpauth:// (con emisor y etiqueta opcionales) para reimportar la cuenta en cualquier app.

Notas de implementación:

  • HOTP usa la truncación dinámica estándar: HMAC del contador big-endian de 8 bytes, tomar los 4 bits bajos del último byte como offset, leer un entero de 31 bits, luego mod 10^dígitos.
  • TOTP es HOTP con counter = floor(tiempoUnix / paso).
  • La decodificación es base32 RFC 4648 (sin padding); los espacios se ignoran.

Resultados de ejemplo

1 Ejemplos

Generar el TOTP de 6 dígitos actual

Usa la semilla de prueba clásica JBSWY3DPEHPK3PXP (SHA-1, 6 dígitos, 30 s).

Shows the current TOTP code, countdown ring, next 5 windows, and an otpauth:// URI.
Ver parámetros de entrada
{ "secret": "JBSWY3DPEHPK3PXP", "mode": "totp", "algorithm": "sha1", "digits": 6, "period": 30, "counter": 0, "preview": 5, "issuer": "Acme", "account": "[email protected]" }

Datos clave

Categoría
Seguridad y validación
Tipos de entrada
text, select, number
Tipo de salida
html
Cobertura de muestras
4
API disponible
Yes

Resumen

Genera de forma segura y local códigos de autenticación de doble factor (2FA) basados en tiempo (TOTP RFC 6238) o en contador (HOTP RFC 4226) a partir de un secreto en formato base32, sin enviar datos a internet y con soporte para algoritmos HMAC-SHA1, SHA-256 y SHA-512.

Cuándo usarlo

  • Cuando necesitas verificar si una clave semilla (secret) de 2FA genera los mismos códigos que tu aplicación móvil de autenticación.
  • Para recuperar el acceso a una cuenta o generar códigos temporales sin tener tu teléfono móvil a mano.
  • Al migrar o respaldar cuentas de seguridad creando un enlace de importación otpauth:// compatible con Google Authenticator o Authy.

Cómo funciona

  • Introduce el secreto compartido en base32 (los espacios se ignoran automáticamente) y selecciona el modo de generación (TOTP o HOTP).
  • Configura los parámetros de seguridad como el algoritmo HMAC (SHA-1, SHA-256 o SHA-512), el número de dígitos (6 u 8) y el paso de tiempo o contador.
  • El generador procesa la clave localmente en tu navegador mediante truncación dinámica estándar para mostrar el código actual, la cuenta atrás y los próximos códigos.

Casos de uso

Comprobación y depuración de la sincronización de códigos 2FA durante el desarrollo de sistemas de autenticación.
Generación de códigos de respaldo temporales desde un entorno de escritorio seguro sin acceso a dispositivos móviles.
Creación de URIs otpauth:// personalizadas con emisor y etiqueta de cuenta para facilitar la configuración de nuevos usuarios.

Ejemplos

1. Generación de código TOTP estándar de 6 dígitos

Administrador de sistemas
Contexto
Necesita verificar que una clave secreta de respaldo de 2FA para una cuenta de administrador sigue generando códigos válidos sin usar el móvil.
Problema
Obtener el código de verificación actual de 6 dígitos y previsualizar los siguientes intervalos de tiempo.
Cómo usarlo
Introduce la clave base32 en el campo de secreto, selecciona el modo TOTP, algoritmo SHA-1, 6 dígitos y un paso de 30 segundos.
Configuración de ejemplo
{
  "secret": "JBSWY3DPEHPK3PXP",
  "mode": "totp",
  "algorithm": "sha1",
  "digits": "6",
  "period": "30"
}
Resultado
Se muestra el código de 6 dígitos actual junto con un temporizador de cuenta atrás y los próximos 5 códigos de seguridad.

2. Creación de URI otpauth para migración

Especialista en seguridad informática
Contexto
Quiere preparar un enlace de configuración rápida para que un usuario importe su credencial 2FA en su aplicación móvil.
Problema
Generar una URI estructurada compatible con Google Authenticator que incluya el nombre de la empresa y el correo del usuario.
Cómo usarlo
Introduce el secreto base32, define el emisor como 'Empresa S.A.' y la etiqueta de cuenta como '[email protected]', y copia la URI generada.
Configuración de ejemplo
{
  "secret": "MZXW6YTBOI",
  "mode": "totp",
  "issuer": "Empresa S.A.",
  "account": "[email protected]"
}
Resultado
Se obtiene una URI otpauth://totp/Empresa%20S.A.:[email protected]?secret=MZXW6YTBOI&issuer=Empresa%20S.A. lista para ser importada.

Probar con muestras

hash

Hubs relacionados

Preguntas frecuentes

¿Es seguro introducir mi secreto base32 en esta herramienta?

Sí, el generador funciona completamente sin conexión en tu navegador; ningún dato o secreto se envía a servidores externos.

¿Qué diferencia hay entre TOTP y HOTP?

TOTP genera códigos basados en el tiempo actual (cambian cada 30 o 60 segundos), mientras que HOTP los genera basándose en un contador incremental.

¿Cómo importo el código generado en mi aplicación de autenticación?

La herramienta genera una URI otpauth:// que puedes copiar o convertir en código QR para importarla directamente en Google Authenticator o Authy.

¿Por qué mi código TOTP no coincide con el de mi aplicación?

Asegúrate de que la hora de tu dispositivo esté sincronizada y de que el algoritmo (por defecto SHA-1) y el periodo (30 o 60 segundos) sean los correctos.

¿Admite secretos con espacios o minúsculas?

Sí, el decodificador base32 RFC 4648 ignora los espacios en blanco y procesa el secreto de forma limpia.

Documentación de la API

Punto final de la solicitud

POST /es/api/tools/totp-hotp-offline-generator

Parámetros de la solicitud

Nombre del parámetro Tipo Requerido Descripción
secret text -
mode select No -
algorithm select No -
digits select No -
period select No -
counter number No -
preview number No -
issuer text No -
account text No -

Formato de respuesta

{
  "result": "
Processed HTML content
", "error": "Error message (optional)", "message": "Notification message (optional)", "metadata": { "key": "value" } }
HTML: HTML

Documentación de MCP

Agregue este herramienta a su configuración de servidor MCP:

{
  "mcpServers": {
    "elysiatools-totp-hotp-offline-generator": {
      "name": "totp-hotp-offline-generator",
      "description": "Genera contraseñas de un solo uso TOTP RFC 6238 (6/8 dígitos, 30/60 s) y HOTP RFC 4226 (por contador) a partir de un secreto base32, sin conexión, con HMAC-SHA1/256/512, y exporta una URI otpauth://",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=totp-hotp-offline-generator",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Puede encadenar múltiples herramientas, por ejemplo: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, máximo 20 herramientas.

Si encuentra algún problema, por favor, póngase en contacto con nosotros en [email protected]