Generador TOTP
Generador TOTP: calcula el código de seis dígitos para un secreto Base32 y contador explícito.
Código desde secreto y contador
El generador decodifica un secreto Base32, representa el contador en ocho bytes y calcula HMAC-SHA-1. El truncamiento dinámico reduce el resultado y toma seis dígitos. Con JBSWY3DPEHPK3PXP y contador 0 devuelve 282760, un caso fijo útil para depuración.
Modo temporal de treinta segundos
Si el contador queda vacío, se obtiene a partir del tiempo actual dividido en intervalos de 30 segundos. El código cambia al cruzar cada límite. Dos dispositivos solo coinciden si comparten secreto, algoritmo, número de dígitos y relojes suficientemente próximos.
Base32 sin ambigüedad
El secreto no es una contraseña de usuario ni una cadena hexadecimal. Debe ser Base32 válido; espacios decorativos o caracteres fuera del alfabeto pueden impedir la decodificación. Para una prueba reproducible usa un secreto ficticio y un contador explícito antes de probar el reloj.
Diagnosticar un código diferente
Compara primero el vector con contador 0. Si coincide, revisa hora del sistema, zona no relevante, intervalo y tolerancia del servidor. TOTP utiliza tiempo Unix, por lo que cambiar la zona visual no debe cambiar el contador si el reloj representa el mismo instante.
El secreto es la credencial
Quien obtiene el secreto puede generar códigos futuros. No pegues aquí uno asociado a una cuenta real y no lo guardes en capturas. La herramienta no configura servicios, escanea QR, recupera cuentas ni sustituye una aplicación autenticadora protegida.
Ventana de tolerancia del servidor
Muchos verificadores aceptan el contador actual y alguno adyacente para tolerar pequeños desfases. Esa ventana pertenece al servidor y no modifica el código que calcula la página. Una tolerancia amplia reduce rechazos pero también aumenta códigos aceptables, por lo que debe seguir la política del sistema y acompañarse de límites de intentos.
Fuentes y referencias
Continúa con estas herramientas
Preguntas frecuentes
¿Para qué sirve introducir contador 0?
Convierte el cálculo en un vector estable. Así puedes separar errores de Base32 o HMAC de problemas relacionados con el reloj.
¿Por qué el código temporal acaba de cambiar?
El instante cruzó un límite de 30 segundos. El código corresponde al contador del intervalo actual, no a una validez permanente.
¿Influye la zona horaria configurada?
No debería, porque el contador parte del tiempo Unix. Sí influye que el reloj del dispositivo esté adelantado o retrasado.
¿Puedo pegar el secreto de mi cuenta real?
No conviene exponerlo fuera del autenticador o flujo previsto. Con ese secreto otra persona puede reproducir tus códigos.
¿El generador crea un código QR?
No. Calcula seis dígitos desde Base32 y contador. Un QR de aprovisionamiento requiere además una URI y metadatos específicos.
¿Por qué el código tiene ceros al principio?
La reducción produce un número de seis posiciones y los ceros iniciales forman parte del código que debe conservarse.
Herramienta de OCC Tools