Resuelto: Fernet%3A no puede descifrar cadenas guardadas en csv con pandas

Fernet es una biblioteca de cifrado simétrico en Python que proporciona un cifrado seguro y fácil de usar para datos confidenciales. Un caso de uso común para Fernet es cifrar los datos antes de almacenarlos en un archivo CSV, asegurando que solo las partes autorizadas puedan acceder a ellos. Sin embargo, descifrar estas cadenas cifradas en un archivo CSV puede ser un poco complicado, especialmente cuando se usa la biblioteca de Pandas.

En este artículo, discutiremos una solución al problema de descifrar cadenas guardadas en un archivo CSV utilizando Fernet y Pandas. Proporcionaremos una explicación paso a paso del código y profundizaremos en las funciones y bibliotecas relevantes involucradas en el proceso.

Para empezar, analicemos el problema en detalle. Cuando se usa el cifrado Fernet para proteger los datos antes de almacenarlos en un archivo CSV, puede ser difícil descifrar los datos mientras se usa Pandas para leer el archivo. Las cadenas cifradas requieren un manejo adecuado para garantizar su integridad durante el descifrado.

Solución al problema

Una posible solución a este problema es usar funciones personalizadas y aplicarlas al marco de datos obtenido del archivo CSV. Crearemos una función para descifrar las cadenas cifradas utilizando la biblioteca Fernet y luego aplicaremos esta función al marco de datos de Pandas que contiene los datos cifrados.

Aquí hay una explicación paso a paso del código:

1. Primero, necesitamos importar las bibliotecas necesarias:

import pandas as pd
from cryptography.fernet import Fernet

2. Luego, generemos una clave Fernet y encriptemos algunos datos de muestra. Supongamos que hemos encriptado los siguientes datos y los hemos guardado en un archivo CSV llamado "encrypted_data.csv" con dos columnas "data" y "encrypted":

key = Fernet.generate_key()
cipher_suite = Fernet(key)
data = "This is a sample text."
encrypted_data = cipher_suite.encrypt(data.encode("utf-8"))

3. Ahora, creemos una función para descifrar las cadenas cifradas con la clave de Fernet dada:

def decrypt_string(encrypted_string, fernet_key):
    cipher_suite = Fernet(fernet_key)
    return cipher_suite.decrypt(encrypted_string.encode("utf-8")).decode("utf-8")

4. Podemos leer el archivo CSV que contiene datos encriptados usando Pandas:

csv_data = pd.read_csv('encrypted_data.csv')

5. Finalmente, aplique la función 'decrypt_string' a la columna cifrada del marco de datos usando el método 'aplicar' y almacene los datos descifrados en una nueva columna. Tenga en cuenta que debe pasar la clave como un argumento adicional en el método 'aplicar':

csv_data['decrypted'] = csv_data['encrypted'].apply(decrypt_string, fernet_key=key)

Biblioteca Fernet

Fernet es una biblioteca criptográfica popular en Python que proporciona métodos fáciles de usar para cifrar y descifrar datos con criptografía de clave simétrica AES. La biblioteca garantiza que los datos cifrados con Fernet no pueden manipularse ni leerse más sin la clave, lo que garantiza la confidencialidad e integridad de los datos. Fernet utiliza codificación URL-safe/base64 para textos cifrados, lo que lo hace adecuado para almacenar datos cifrados en archivos o bases de datos.

Biblioteca de pandas

pandas es una biblioteca de análisis de datos y manipulación de datos de código abierto en Python. Proporciona estructuras de datos, como Series y DataFrame, y varias funciones para manejar, transformar y visualizar datos. Pandas es especialmente útil para trabajar con datos estructurados o tabulares, como archivos CSV o bases de datos SQL. Esta biblioteca simplifica muchos aspectos de la manipulación de datos, lo que la convierte en una herramienta esencial para el análisis de datos y el aprendizaje automático.

En conclusión, el descifrado de cadenas cifradas guardadas en un archivo CSV usando Fernet y Pandas se puede lograr siguiendo los pasos proporcionados en este artículo. Al crear una función de descifrado personalizada y aplicarla al marco de datos, podemos descifrar de manera efectiva los datos confidenciales almacenados en el archivo CSV.

Artículos Relacionados:

Deja un comentario