otp
app.utils.otp
Módulo de Python para la generación y verificación de contraseñas de un solo uso (OTP).
Para más información, te recomendamos leer la documentación del Proyecto.
gen_otp_secret(to_hex=False)
Genera una clave secreta en formato hexadecimal.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
to_hex | bool | especifica si la clave secreta se generará en formato hexadecimal ó no, por defecto | False |
Notes
la clave generada por defecto es de 32 caracteres.
Se proporciona una función de ayuda para generar un secreto en base32, compatible con Google Authenticator
y otras aplicaciones OTP. Para este caso fije el parámetro to_hex
a True
.
Returns:
Type | Description |
---|---|
Any | una clave secreta, ó |
Examples:
gen_totp(secret)
validate_totp(token, secret)
Valida el codigo OTP basado en Time-based (TOTP).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
token | str | el token (código) TOTP | required |
secret | str | el secreto (vease | required |
Returns:
Type | Description |
---|---|
bool | el resultado de la validación, ó |
Examples:
gen_hotp(secret, counter=30)
Genera un codigo OTP basado en HMAC-based (HOTP) para el contador dado.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
secret | str | el secreto (vease | required |
counter | int | el contador en segundos, por defecto: | 30 |
Notes
Tenga en cuenta que esta función esta basada en tiempo, por lo que al generar el token, el contador DEBE estar sincronizado entre el generador HOTP (cliente) y el validador HOTP (servidor).
el número de segundos que el generador de HOTP está configurado para caducar cada código, se establece en el parámetro counter
.
Returns:
Type | Description |
---|---|
str | el token (código) HTOP, ó |
Examples:
validate_hotp(token, secret, counter=30)
Valida el codigo OTP basado en HMAC-based (HOTP).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
token | str | el token (código) HOTP | required |
secret | str | el secreto (vease | required |
counter | int | el contador en segundos, por defecto: | 30 |
Notes
El contador (counter
) DEBE estar sincronizado entre el generador HOTP (cliente) y el validador HOTP (servidor) ó la validación fallará.
Returns:
Type | Description |
---|---|
bool | el resultado de la validación, ó |
Examples:
gen_auth_2fa(secret, email, app_name=None)
Generar una URI de aprovisionamiento para su uso con Google Authenticator, así como con otras aplicaciones OTP (clientes 2FA/MFA).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
secret | str | el secreto para verificar, (véase | required |
email | str | el email del usuario | required |
Notes
- La cantidad de digitos a generar, por defecto es de 6 (
DEFAULT_DIGITS
). - El tiempo por defecto es de 30 segundos(
DEFAULT_PERIOD
).
Returns:
Type | Description |
---|---|
Optional[str] | la URI de aprovisionamiento ó None en caso de error |
Examples: