Se você precisar gerar senhas de uso único usando o algoritmo Mobile-OTP / mOTP, na linha de comando, sem mexer no telefone.
Este é um algoritmo autoproclamado “padrão” para senhas de uso único. É confuso, aparentemente quase obsoleto e parece ser usado principalmente em países de língua alemã. Você não deseja usar isso, a menos que seja forçado a interagir com um sistema existente que usa esses códigos para 2FA.
Aplicativos móveis que parecem suportá-lo:
Autenticador Swiss SafeLab OTP para iOS: no iTunes
Autenticador Swiss SafeLab OTP para Android: download do APK
Aplicativo Android que suporta este algoritmo: DroidOTP na Google Play Store
O princípio do algoritmo é mal explicado e implementado de forma confusa, mas é muito simples: você tem um token secreto (uma sequência ASCII, geralmente hexadecimal ou alfanumérica) e um PIN (uma sequência ASCII, geralmente de 4 dígitos), e este é convertido em um Código de 6 dígitos usando:
counter = ASCII((UNIX epoch time) / 10s) digest = MD5HEX(counter || secret || pin) code = LEFT(digest, 6 characters)
É isso. ¯_(ツ)_/¯
Requer Python 3.x.
$ ./motp.py SECRET PIN a1b329
Mais detalhadamente:
$ ./motp.py -v SECRET PIN Epoch time: 1549323786 Counter: 154932378 a1b329 (current)
Todas as opções disponíveis:
$ ./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