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 40 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: