Qué hace esta herramienta
La mayoría de los códigos de inicio de sesión en dos pasos son códigos TOTP: seis dígitos que cambian cada 30 segundos, calculados con una clave compartida y la hora actual. Esta herramienta genera esos mismos códigos en tu navegador. Pega la clave secreta (escrita en Base32, con letras de la A a la Z y dígitos del 2 al 7) o un enlace otpauth:// completo y verás el código actual con un anillo que cuenta atrás hasta el siguiente, además del código anterior y el siguiente. Sirve para desarrolladores que crean o prueban el doble factor, para comprobar que una clave se copió bien y para quien tiene una clave guardada y necesita un código.
Cómo se calcula un código
La clave se convierte en bytes. El número de periodos completos desde el 1 de enero de 1970 (UTC) forma un contador de 8 bytes. El HMAC del contador con la clave da un valor de 20 bytes (con SHA-1). Los últimos cuatro bits eligen un desplazamiento, cuatro bytes desde ahí se leen como un número sin el bit superior, y el resto de dividir entre un millón (seis dígitos) es el código, con ceros a la izquierda si hacen falta. Una comprobación: la clave de prueba de la RFC 6238 es el texto 12345678901234567890, que en Base32 es GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ. En el segundo 59 el contador es 1 y, con SHA-1 y ocho dígitos, el código es 94287082; con seis dígitos, 287082.
Algoritmo, dígitos, periodo y enlaces otpauth
Los servicios describen una clave con un enlace otpauth, que es lo que contiene el QR de la pantalla de alta. Puede llevar emisor, nombre de cuenta, algoritmo, dígitos (6 a 8) y periodo. Algunas apps ignoran estas opciones y usan siempre SHA-1, seis dígitos y 30 segundos; si un código no coincide con tu app, prueba esos valores. Para leer el enlace de una imagen QR usa el lector de códigos QR y pégalo aquí. Un enlace de códigos por contador (HOTP) se reconoce y se rechaza.
Seguridad
Una clave TOTP vale tanto como una contraseña: quien la tenga puede generar tus códigos para siempre. No pegues la clave de una cuenta real, como tu banco o tu correo principal, en ninguna web, tampoco en esta. La página funciona en tu navegador, no envía la clave, no la guarda en el almacenamiento ni en la barra de direcciones y la olvida al cerrar la pestaña, pero no puedes comprobarlo desde fuera. Úsala con cuentas de prueba y guarda las claves reales en una app de autenticación o un gestor de contraseñas. Mira también el generador de contraseñas y el cifrado de texto.
Cuando rechazan un código
El código depende del reloj del dispositivo. Si el reloj se adelanta un minuto, el código es de otro periodo y el servicio lo rechaza; activa la hora automática. Se muestran el código anterior y el siguiente para que veas si el servicio acepta un periodo vecino. Revisa también que la clave no tenga un carácter perdido: una clave equivocada sigue dando códigos, pero no los correctos.