Generador de códigos TOTP

Escriba la clave secreta que le dio su servicio para el inicio de sesión en dos pasos, y esta página calcula en su navegador el código de un solo uso actual, con la cuenta atrás, los códigos anterior y siguiente, y HOTP para un contador.

Gratuita Funciona en su navegador Revisada: martes, 10 de noviembre de 2026

Esta herramienta funciona en su navegador. Lo que escribe no se envía a nosotros.

Cómo se usa

  1. Escriba la clave secreta de la página de dos pasos de su servicio en el campo, o pegue el texto otpauth:// que contiene su código QR. Pulse Mostrar para comprobar lo que escribió.
  2. Elija el Hash, los Dígitos y el Periodo que indica el servicio. Muchos servicios usan los valores por defecto del formato Key URI: SHA-1, 6 dígitos y 30 segundos.
  3. En un servicio basado en contador, elija Basado en contador (HOTP) e indique el contador; Contador + 1 lo avanza.
  4. Escriba el Código actual antes de que se agote el Tiempo restante, y compruebe los códigos Anterior y Siguiente si el reloj de su dispositivo va un poco desfasado.

Cómo se genera un código

HOTP (RFC 4226) toma la clave secreta y un contador, calcula un HMAC del contador con el hash y toma cuatro bytes de él (truncamiento dinámico). El número que dan esos bytes, módulo 10 elevado a los dígitos, es el código.

TOTP (RFC 6238) es HOTP con un contador que sale del tiempo: la hora Unix en segundos, dividida entre el periodo y redondeada hacia abajo. Un código nuevo empieza en cada periodo, así que los dos extremos necesitan un reloj preciso.

TOTP = HOTP(clave, parte entera de (tiempo unix / periodo));   HOTP = truncar(HMAC(clave, contador)) mod 10^dígitos

Claves secretas y URI otpauth://

La clave secreta es un texto Base32 (RFC 4648): las letras de la A a la Z y los dígitos del 2 al 7. Los espacios se ignoran y el relleno puede omitirse. Una clave con un carácter fuera de ese conjunto, o con una longitud imposible, se rechaza.

Un URI otpauth:// (Key URI Format de Google) contiene el tipo, la etiqueta, la clave y, de forma opcional, el emisor, el algoritmo, los dígitos, el periodo y el contador. Los ajustes que faltan toman los valores por defecto del formato: SHA1, 6 dígitos, 30 segundos y contador 0.

Cómo se comprobó la página

El código se prueba con los valores de prueba del apéndice D de la RFC 4226 (contadores de 0 a 9) y del apéndice B de la RFC 6238 (seis veces, con SHA-1, SHA-256 y SHA-512 con ocho dígitos). El HMAC lo calcula SubtleCrypto de su navegador.

Ejemplo resuelto: la clave de prueba de la RFC 6238

La clave de prueba de la RFC es el texto 12345678901234567890, que en Base32 es GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ. En la hora Unix 59, con un periodo de 30 segundos, el paso 1 de TOTP da el código de ocho dígitos 94287082 para SHA-1.

Con seis dígitos, el mismo paso da 287082, el código del contador 1 de la RFC 4226; son los últimos seis dígitos del valor de ocho.

Preguntas frecuentes

¿Se envía la clave o el código a un servidor?

No. El código se calcula en su navegador, y la página no hace ninguna petición que contenga la clave o el código. No se guarda nada, y al recargar se olvidan ambos.

¿Debo pegar aquí la clave secreta de mi cuenta real?

Solo en una página en la que confíe, y solo si nadie más puede ver su pantalla. La app de autenticación es el lugar normal para una cuenta real, porque guarda la clave para el uso diario; esta página sirve para sus propias herramientas y para códigos que necesite una sola vez.

¿Por qué el código cambia cada 30 segundos?

Un código basado en tiempo (TOTP) usa el número de periodos desde la época Unix, así que un código nuevo empieza en cada periodo. La cuenta atrás muestra cuánto dura el actual.

¿Por qué mi código no coincide con la app del servicio?

Revise la clave (solo Base32), el hash, los dígitos y el periodo, que indica el servicio; después compruebe que el reloj de su dispositivo es correcto, porque un código basado en tiempo depende de él. Los códigos anterior y siguiente ayudan a ver una pequeña diferencia de reloj.

¿Qué hash debo elegir?

Elija el que indique el servicio. SHA-1 es el valor por defecto de HOTP en la RFC 4226 y del formato otpauth; la RFC 6238 admite también SHA-256 y SHA-512 para TOTP.

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

TOTP usa el tiempo, así que el código cambia en cada periodo. HOTP usa un contador que avanza en cada uso, así que el código se mantiene hasta que cambia el contador.

¿Qué hace el texto otpauth://?

Lleva los ajustes de una clave de dos factores en el Key URI Format, normalmente dentro de un código QR. Al pegarlo aquí se rellenan la clave, el hash, los dígitos, el periodo y el contador.

Fuentes

Cifras y texto revisados por última vez el martes, 10 de noviembre de 2026.

Usamos cookies necesarias para que el sitio funcione. Si usted lo acepta, Google también usa cookies publicitarias para mostrar anuncios personalizados. Si las rechaza, seguirá viendo anuncios, pero no estarán personalizados.