Uso de Passlib para gestión de contraseñas en Python

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:

Python
from passlib.hash import bcrypt

hasher = bcrypt.Hasher()

Generación de contraseñas

Para generar una contraseña, usa el siguiente código:

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

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

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

Python
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.