Uso de Passlib para gestión de contraseñas en Python
En este tutorial, aprenderás a usar Passlib para gestionar contraseñas en Python. Passlib es una biblioteca de Python que proporciona una forma segura de almacenar y validar contraseñas.
Instalación
Para instalar Passlib, abre una terminal y ejecuta el siguiente comando:
pip install passlib
Clase Hasher
La clase Hasher de Passlib es la base para la gestión de contraseñas. Esta clase proporciona métodos para generar, validar y comparar contraseñas.
Para crear un objeto Hasher, usa el siguiente código:
from passlib.hash import bcrypt
hasher = bcrypt.Hasher()
Generación de contraseñas
Para generar una contraseña, usa el siguiente código:
password = "mi_contraseña"
hash = hasher.hash(password)
El método hash()
devuelve un objeto HashResult
que contiene la contraseña hash.
Validación de contraseñas
Para validar una contraseña, usa el siguiente código:
password = "mi_contraseña"
hash = "mi_contraseña_hash"
is_valid = hasher.verify(password, hash)
El método verify()
devuelve True
si la contraseña es válida y False
si no lo es.
Comparación de contraseñas
Para comparar dos contraseñas, usa el siguiente código:
password1 = "mi_contraseña1"
password2 = "mi_contraseña2"
is_equal = hasher.compare(password1, password2)
El método compare()
devuelve True
si las dos contraseñas son iguales y False
si no lo son.
Ejemplo
El siguiente ejemplo muestra cómo usar Passlib para gestionar contraseñas:
from passlib.hash import bcrypt
def hash_password(password):
hasher = bcrypt.Hasher()
hash = hasher.hash(password)
return hash
def verify_password(password, hash):
hasher = bcrypt.Hasher()
is_valid = hasher.verify(password, hash)
return is_valid
def main():
password = input("Introduce una contraseña: ")
hash = hash_password(password)
print("La contraseña hash es:", hash)
password2 = input("Introduce otra contraseña: ")
is_equal = verify_password(password2, hash)
if is_equal:
print("Las contraseñas son iguales")
else:
print("Las contraseñas son diferentes")
if __name__ == "__main__":
main()
Este ejemplo crea un método hash_password()
que genera una contraseña hash. El método verify_password()
valida una contraseña hash. El método main()
pide al usuario que introduzca una contraseña y la hashea. A continuación, pide al usuario que introduzca otra contraseña y la valida con la contraseña hash original.
Más información
Para obtener más información sobre Passlib, consulta la documentación oficial:
- Passlib documentation: https://passlib.readthedocs.io/en/stable/
Conclusión
Passlib es una biblioteca de Python que proporciona una forma segura de almacenar y validar contraseñas. En este tutorial, has aprendido a usar Passlib para gestionar contraseñas en Python.