¿Qué es import hashlib y cómo usarlo en Python?

| Última modificación: 20 de enero de 2025 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Trabajar en informática es sinónimo de versatilidad, de adaptarse a los entornos con las herramientas que tengamos a la mano. Te lo digo yo, que llevo años en esto y que he tenido que aprender que, por ejemplo, términos como hash o criptografía pueden perfectamente implementarse en proyectos de python, por medio del import hashlib. Este es un módulo que permite trabajar con algoritmos de hash de forma eficiente y hoy quiero mostrarte qué es más en profundidad y cómo funciona.

 import hashlib

¿Qué es el módulo hashlib?

El módulo hashlib en Python es una biblitoeca que nos permite trabajar con algoritmos de hash seguros y funciones de resumen de mensajes. ¿Qué quiere decir esto? Pyes que puedes transformar datos, como por ejemplo contraseñas o archivos, en una representación única, compacta e irreversible, conocida como hash.

Algunos de los algoritmos compatibles son el SHA-256, SHA-512, MD5 y otros de las familias SHA-3 y BLAKE2. Si bien algunos de estos como son MD5 y SHA-1 tienen vulnerabilidades conocidas, siguen siendo útiles en aplicaciones no críticas, como por ejemplo para generar checksums.

El módulo hashlib es muy importante en tareas de seguridad y manejo de datos. Algunas de sus aplicaciones más comunes incluyen:

  • Verificación de integridad para asegurarte de que un archivo no ha sido alterado.
  • Almacenamiento seguro de contraseñas mediante la conversión a hashes antes de guardarlas.
  • Autenticación creando y verificando firmas digitales o tokens.
  • Generación de identificadores únicos mediante hashes.

Con solo escribir import hashlib puedes acceder a todas estas funcionalidades.

¿Cómo usar import hashlib en Python?

Veamos cómo crear un hash con import hashlib para que veas qué fácil es usar esta herramienta:

Crear un hash con hashlib

🔴 ¿Quieres Aprender a Programar con Python? 🔴

Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semana

El proceso para generar un hash incluye:

  1. Importar el módulo hashlib.
  2. Crear un objeto hash utilizando el algoritmo deseado, como sha256.
  3. Actualizar el objeto hash con los datos que deseas procesar.
  4. Obtener el resultado del hash con los métodos digest o hexdigest.

Veamos un ejemplo:

import hashlib

# Crear un objeto hash para SHA-256
hash_object = hashlib.sha256()

# Agregar datos al hash
hash_object.update(b"Hola, mundo!")

# Obtener el hash en formato hexadecimal
resultado = hash_object.hexdigest()
print(resultado)

Generar un hash de forma directa

Puedes generar un hash directamente sin necesidad de crear un objeto explícito:

import hashlib

# Generar un hash SHA-256 directamente
resultado = hashlib.sha256(b"Hola, mundo!").hexdigest()
print(resultado)

Ejemplo: Verificar la integridad de un archivo

Una de las aplicaciones más prácticas de hashlib es verificar que un archivo no haya sido alterado. Veamos cómo calcular el hash de un archivo así:

import hashlib

def calcular_hash_archivo(ruta_archivo, algoritmo="sha256"):
hash_func = hashlib.new(algoritmo)
with open(ruta_archivo, "rb") as f:
for bloque in iter(lambda: f.read(4096), b""):
hash_func.update(bloque)
return hash_func.hexdigest()

ruta = "archivo_ejemplo.txt"
hash_resultado = calcular_hash_archivo(ruta)
print(f"Hash del archivo: {hash_resultado}")

¿Qué algoritmos hay disponibles en hashlib?

El módulo hashlib incluye varios algoritmos garantizados, entre los que se encuentran:

  • SHA1
  • SHA224
  • SHA256
  • SHA384
  • SHA512
  • SHA3_224, SHA3_256, SHA3_384, SHA3_512
  • BLAKE2b y BLAKE2s

Puedes consultar todos los algoritmos disponibles en tu instalación de Python con el siguiente código:

import hashlib

print(hashlib.algorithms_guaranteed)

Consejos que deberías seguir para trabajar con import hashlib

Cuando utilices hashlib, es bueno que consideres estas recomendaciones:

  1. Usa algoritmos seguros como SHA-256 o SHA-3 en lugar de MD5 o SHA-1 para aplicaciones críticas.
  2. Si trabajas con contraseñas, incluye una sal única para cada usuario y previene ataques de diccionario.
  3. Mantén tu instalación de Python actualizada para aprovechar las mejoras en seguridad y rendimiento.

Si te interesa el mundo de la programación y especialmente Python, puedes unirte en nuestro bootcamp de programación desde cero, en donde aprenderás los lenguajes básicos para que empieces a incursionar en el mercado laboral haciendo programas simples pero efectivos. ¡Empieza a cambiar tu vida hoy y cumple tus propósitos de año nuevo!

Posts más leídos

¡CONVOCATORIA ABIERTA!

Aprende a programar desde cero

Full Stack JR. Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado