Este código genera y verifica códigos TOTP (Time-Based One-Time Password) para autenticación de dos factores.
time: Utilizada para operaciones relacionadas con el tiempo.pyotp: Utilizada para generar y verificar códigos TOTP.qrcode: Utilizada para generar códigos QR.urllib.parse: Utilizada para analizar la URI de aprovisionamiento.
- Generar una clave base32 segura y única utilizando la función
random_base32()depyotp. - Crear un objeto TOTP con la clave generada.
- Generar una URI de aprovisionamiento para la clave utilizando el método
provisioning_uri()del objeto TOTP. - Analizar la URI de aprovisionamiento utilizando la función
urlparse()deurllib.parse. - Extraer la clave secreta de la URI de aprovisionamiento utilizando la función
parse_qs()deurllib.parse. - Imprimir la clave secreta, que se puede ingresar manualmente en una aplicación de autenticación si no es posible escanear el código QR.
- Generar un código QR a partir de la URI de aprovisionamiento utilizando la función
make()deqrcodey guardarlo como una imagen PNG. - Entrar en un bucle infinito donde se solicita al usuario que ingrese un código TOTP y se verifica su validez.
- Verificar el código TOTP con una ventana de tiempo de 1 minuto utilizando el método
verify()del objeto TOTP. - Imprimir el resultado de la verificación.
- Instalar las bibliotecas requeridas:
pip install pyotp qrcode. - Ejecutar el código.
- Escanear el código QR generado con una aplicación de autenticación o ingresar manualmente la clave secreta.
- Ingresar el código TOTP cuando se solicite.
- El código verificará el código ingresado e imprimirá el resultado.