Saltar al contenido principal

Cómo calcular la suma de verificación de un archivo en Python

Cómo calcular el checksum de un archivo en Python.

Aquí tienes un tutorial paso a paso sobre cómo calcular el checksum de un archivo en Python.

Paso 1: Importar los módulos necesarios

Para calcular el checksum de un archivo, necesitamos importar el módulo hashlib, que proporciona varios algoritmos de hashing.

import hashlib

Paso 2: Abrir el archivo

A continuación, necesitamos abrir el archivo para el cual queremos calcular el checksum. Podemos usar la función open() en Python para hacer esto. Toma dos argumentos: el nombre del archivo y el modo en el que se debe abrir el archivo. Abriremos el archivo en modo binario ('rb') para asegurarnos de que se lea como datos binarios.

filename = 'ruta/hacia/tu/archivo.ext'
with open(filename, 'rb') as file:
# Código para el cálculo del checksum va aquí

Reemplaza 'ruta/hacia/tu/archivo.ext' con la ruta real de tu archivo.

Paso 3: Inicializar el algoritmo de hashing

Para calcular el checksum, necesitamos inicializar el algoritmo de hashing. Podemos elegir entre varios algoritmos proporcionados por el módulo hashlib, como MD5, SHA-1, SHA-256, etc. En este ejemplo, usaremos el algoritmo SHA-256.

hash_algorithm = hashlib.sha256()

Paso 4: Leer el archivo en bloques y actualizar el checksum

Para calcular el checksum, leeremos el archivo en bloques y actualizaremos el checksum para cada bloque. Esto es útil para archivos grandes, ya que evita cargar el archivo completo en memoria a la vez.

block_size = 4096
for block in iter(lambda: file.read(block_size), b''):
hash_algorithm.update(block)

Aquí, block_size representa el tamaño de cada bloque. Puedes elegir un valor adecuado según tus requisitos.

Paso 5: Obtener el checksum final

Después de leer todo el archivo y actualizar el checksum, podemos obtener el valor de checksum final utilizando el método hexdigest().

checksum = hash_algorithm.hexdigest()
print(f"El checksum de {filename} es: {checksum}")

El método hexdigest() devuelve el checksum como una cadena hexadecimal.

Ejemplo de código completo

Aquí tienes el ejemplo de código completo que puedes usar para calcular el checksum de un archivo:

import hashlib

filename = 'ruta/hacia/tu/archivo.ext'
hash_algorithm = hashlib.sha256()

with open(filename, 'rb') as file:
block_size = 4096
for block in iter(lambda: file.read(block_size), b''):
hash_algorithm.update(block)

checksum = hash_algorithm.hexdigest()
print(f"El checksum de {filename} es: {checksum}")

Reemplaza 'ruta/hacia/tu/archivo.ext' con la ruta real de tu archivo.

¡Eso es todo! Has calculado con éxito el checksum de un archivo en Python.