Saltar al contenido principal

Cómo cifrar un archivo en Python

Aquí tienes un tutorial paso a paso sobre cómo cifrar un archivo en Python:

Paso 1: Importar las bibliotecas necesarias

Primero, necesitamos importar las bibliotecas necesarias para el cifrado. En este tutorial, usaremos la biblioteca cryptography, que proporciona una serie de recetas y algoritmos criptográficos.

from cryptography.fernet import Fernet

Paso 2: Generar una clave

Para cifrar y descifrar un archivo, necesitamos una clave. La clave se utiliza para realizar las operaciones de cifrado y descifrado. En este ejemplo, utilizaremos la clase Fernet de la biblioteca cryptography para generar una clave.

clave = Fernet.generate_key()

Paso 3: Guardar la clave

A continuación, necesitamos guardar la clave en un archivo para poder utilizarla más adelante para el cifrado y descifrado. Puedes elegir un nombre de archivo y una ubicación de tu elección para guardar la clave.

with open('clave.txt', 'wb') as archivo_clave:
archivo_clave.write(clave)

Paso 4: Cargar la clave

Antes de poder cifrar o descifrar un archivo, necesitamos cargar la clave desde el archivo guardado. Leeremos la clave del archivo y la almacenaremos en una variable.

with open('clave.txt', 'rb') as archivo_clave:
clave = archivo_clave.read()

Paso 5: Cifrar el archivo

Ahora que tenemos la clave, podemos empezar a cifrar un archivo. En este ejemplo, cifraremos un archivo de texto, pero puedes cifrar cualquier tipo de archivo utilizando el mismo enfoque.

# Leer el contenido del archivo
with open('texto_plano.txt', 'rb') as archivo:
texto_plano = archivo.read()

# Crear un objeto Fernet con la clave
fernet = Fernet(clave)

# Cifrar el contenido del archivo
cifrado = fernet.encrypt(texto_plano)

# Guardar el contenido cifrado en un nuevo archivo
with open('cifrado.txt', 'wb') as archivo:
archivo.write(cifrado)

Paso 6: Descifrar el archivo

Para descifrar el archivo cifrado, seguiremos un proceso similar. Primero, cargamos la clave desde el archivo guardado, luego leemos el contenido cifrado del archivo y lo desciframos utilizando la clave.

# Cargar la clave desde el archivo
with open('clave.txt', 'rb') as archivo_clave:
clave = archivo_clave.read()

# Leer el contenido cifrado
with open('cifrado.txt', 'rb') as archivo:
cifrado = archivo.read()

# Crear un objeto Fernet con la clave
fernet = Fernet(clave)

# Descifrar el contenido cifrado
descifrado = fernet.decrypt(cifrado)

# Guardar el contenido descifrado en un nuevo archivo
with open('descifrado.txt', 'wb') as archivo:
archivo.write(descifrado)

¡Y eso es todo! Has cifrado y descifrado correctamente un archivo utilizando Python. Recuerda reemplazar los nombres de archivo y las rutas en el código con tus propios nombres de archivo y rutas.