Si necesita generar contraseñas de un solo uso utilizando el algoritmo Mobile-OTP/mOTP, desde la línea de comandos, sin perder el tiempo con su teléfono.
Este es un algoritmo autoproclamado "estándar" para contraseñas de un solo uso. Es confuso, aparentemente casi obsoleto y parece usarse principalmente en países de habla alemana. No querrás usar esto a menos que te obliguen a interactuar con un sistema existente que use dichos códigos para 2FA.
Aplicaciones móviles que parecen admitirlo:
Autenticador Swiss SafeLab OTP para iOS: en iTunes
Autenticador Swiss SafeLab OTP para Android: descargar APK
Aplicación de Android que admite este algoritmo: DroidOTP en Google Play Store
El principio del algoritmo está mal explicado y se implementa de manera confusa, pero es muy simple: tienes un token secreto (una cadena ASCII, generalmente hexadecimal o alfanumérica) y un PIN (una cadena ASCII, generalmente de 4 dígitos), y esto se convierte en un Código de 6 dígitos usando:
counter = ASCII((UNIX epoch time) / 10s) digest = MD5HEX(counter || secret || pin) code = LEFT(digest, 6 characters)
Eso es todo. ¯_(ツ)_/¯
Requiere Python 3.x.
$ ./motp.py SECRET PIN a1b329
Más detalladamente:
$ ./motp.py -v SECRET PIN Epoch time: 1549323786 Counter: 154932378 a1b329 (current)
Todas las opciones disponibles:
$ ./motp.py --help usage: motp.py [-h] [-s SECONDS] [-l LENGTH] [-w WINDOW] [-v] secret pin positional arguments: secret mOTP secret value (often hex or alphanumeric digits) pin mOTP PIN value (usually 4 digits) optional arguments: -h, --help show this help message and exit -s SECONDS, --seconds SECONDS Duration of mOTP codes in seconds (default 30 seconds) -l LENGTH, --length LENGTH Length of mOTP output (default 6 characters) -w WINDOW, --window WINDOW Number of counter values before and after current one to show (for testing time-skew) -v, --verbose
MIT