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.