piapia123
es

Códigos TOTP / HOTP

Cifrado

Todo se ejecuta en tu navegador: no se sube nada

Entrada
Arrastra un archivo aquí para cargarlo
Resultado

⚠️ No pegues el secreto de una cuenta que uses de verdad. Aquí todo se calcula en tu equipo y no se envía ninguna petición, pero la página vino de la red — y un secreto TOTP es el segundo factor entero, así que quien lo tenga puede generar códigos válidos sin fin. Esta herramienta sirve para comprobar que un secreto que te dio un servicio funciona y para generar valores esperados al escribir pruebas automatizadas. El algoritmo son dos pasos fijos: se obtiene el contador (TOTP divide la hora Unix actual entre el paso; HOTP usa el entero que le des), y luego HMAC y truncado dinámico — se toma el nibble bajo del último byte del HMAC como desplazamiento, se leen cuatro bytes, se enmascaran a 31 bits y se reduce a seis dígitos. Con el mismo secreto y la misma hora el resultado es el mismo, y debe coincidir dígito a dígito con tu app de autenticación. ⚠️ Aquí solo se calcula qué código corresponde ahora; no se verifica nada — verificar significa enviar una candidata al servidor, que es una acción en línea. Además, cuántas ventanas contiguas acepta es cosa del servidor: los códigos vecinos que se listan son solo el rango que podría tolerar.

Funciones

  • TOTP y HOTP según RFC 6238 / RFC 4226, superando todos los vectores de prueba oficiales de ambas RFC
  • ⚠️ La primera línea avisa de que no pegues un secreto que uses — un secreto TOTP es todo el segundo factor
  • Algoritmo SHA-1, SHA-256 o SHA-512 (SHA-1 es lo que usan por defecto casi todos los servicios)
  • Paso y número de dígitos ajustables (30 segundos y 6 dígitos por defecto, como las apps habituales)
  • Muestra cuántos segundos quedan en la ventana y el valor actual del contador
  • Lista los códigos de las ventanas contiguas, para ver cuánto se ha desviado el reloj de un dispositivo
  • El modo HOTP acepta un contador explícito, cómodo para contrastar con los vectores de la RFC
  • Los secretos admiten minúsculas, espacios o guiones, o relleno; un secreto con 0, 1, 8 o 9 se reporta como error en vez de adivinarlo

Cómo se usa

  1. ⚠️ Usa el secreto de una cuenta de prueba, no uno del que dependas
  2. Pega el secreto Base32
  3. Ajusta algoritmo, paso y dígitos (la mayoría de servicios: SHA-1, 30 segundos, 6 dígitos)
  4. Los seis dígitos deben coincidir exactamente con tu app de autenticación

Preguntas frecuentes

¿Por qué no coincide con mi app de autenticación?
Por orden de probabilidad: desfase de reloj — TOTP depende por completo de que ambos relojes concuerden, y un dispositivo desviado más de 30 segundos cae en una ventana vecina, así que activa las ventanas contiguas y mira si aparece ahí el código de tu app; parámetros distintos — algoritmo (SHA-1 / 256 / 512), paso (30 o 60 segundos) y dígitos (6 u 8) cambian el resultado; un secreto mal copiado — los secretos solo contienen A–Z y 2–7, y al copiar a mano es facilísimo escribir 0 por O o 1 por I, algo que esta herramienta rechaza en vez de rodearlo.
¿Qué diferencia hay entre TOTP y HOTP?
Solo de dónde viene el contador. HOTP usa un contador que ambos lados incrementan, uno por uso — pero en cuanto cliente y servidor se desincronizan ya no vuelven a coincidir, y cada intento fallido de inicio de sesión consume un valor. TOTP usa el tiempo como contador (la hora actual dividida entre el paso), así que mientras los relojes concuerden a grandes rasgos no hay que sincronizar estado. El precio es una ventana de 30 segundos y una dependencia estricta de un reloj exacto.
¿Qué es peor que se filtre, el secreto o un código?
El secreto. Un código caduca en 30 segundos y no sirve de nada sin tu usuario y tu contraseña. El secreto, en cambio, genera códigos válidos para siempre — quien lo tenga puede entrar cuando quiera y por tu lado no se ve nada raro. Así que un secreto filtrado es el segundo factor fallando por completo, mientras que un código filtrado solo afecta a esos 30 segundos.
¿Puede esta herramienta verificar si un código es correcto?
No, y no debería. Verificar significa enviar una candidata a un servidor, una acción en línea que este sitio estático no realiza. Lo que responde es «qué produce este secreto ahora mismo» — compáralo con tu propia app de autenticación y, si coinciden, tanto el secreto como los parámetros son correctos.

Herramientas relacionadas