Solucionat: Fernet%3A no es poden desxifrar les cadenes desades en csv amb pandas

Fernet és una biblioteca de xifratge simètric a Python que proporciona un xifratge segur i fàcil d'utilitzar per a dades sensibles. Un cas d'ús comú de Fernet és xifrar les dades abans d'emmagatzemar-les en un fitxer CSV, assegurant-se que només les persones autoritzades hi puguin accedir. Tanmateix, desxifrar aquestes cadenes xifrades en un fitxer CSV pot ser una mica complicat, especialment quan s'utilitza la biblioteca Pandas.

En aquest article, parlarem d'una solució al problema de desxifrar cadenes desades en un fitxer CSV mitjançant Fernet i Pandas. Proporcionarem una explicació pas a pas del codi i aprofundirem en les funcions i biblioteques rellevants implicades en el procés.

Per començar, parlem del problema en detall. Quan utilitzeu el xifrat de Fernet per protegir les dades abans d'emmagatzemar-les en un fitxer CSV, pot ser difícil desxifrar les dades de nou mentre feu servir Pandas per llegir el fitxer. Les cadenes xifrades requereixen un maneig adequat per garantir la seva integritat durant el desxifrat.

Solució al Problema

Una solució potencial a aquest problema és utilitzar funcions personalitzades i aplicar-les al marc de dades obtingut del fitxer CSV. Crearem una funció per desxifrar les cadenes xifrades mitjançant la biblioteca de Fernet i, després, aplicarem aquesta funció al marc de dades de Pandas que conté les dades xifrades.

Aquí teniu una explicació pas a pas del codi:

1. Primer, hem d'importar les biblioteques necessàries:

import pandas as pd
from cryptography.fernet import Fernet

2. Aleshores, generem una clau de Fernet i xifrem algunes dades de mostra. Suposem que hem xifrat les dades següents i les hem desat en un fitxer CSV anomenat "encrypted_data.csv" amb dues columnes "data" i "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. Ara, creem una funció per desxifrar les cadenes xifrades amb la clau de Fernet donada:

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. Podem llegir el fitxer CSV que conté dades xifrades mitjançant Pandas:

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

5. Finalment, apliqueu la funció "decrypt_string" a la columna xifrada del marc de dades mitjançant el mètode "aplica" i emmagatzemeu les dades desxifrades en una columna nova. Tingueu en compte que heu de passar la clau com a argument addicional al mètode "aplicar":

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

Biblioteca Fernet

Fernet és una biblioteca criptogràfica popular a Python que proporciona mètodes fàcils d'utilitzar per xifrar i desxifrar dades amb criptografia de clau simètrica AES. La biblioteca garanteix que les dades xifrades amb Fernet no es poden manipular ni llegir sense la clau, garantint la confidencialitat i la integritat de les dades. Fernet utilitza codificació URL-safe/base64 per a textos xifrats, cosa que el fa adequat per emmagatzemar dades xifrades en fitxers o bases de dades.

Biblioteca dels Pandes

pandes és una biblioteca de manipulació i anàlisi de dades de codi obert a Python. Proporciona estructures de dades, com ara Series i DataFrame, i diverses funcions per gestionar, transformar i visualitzar dades. Pandas és especialment útil per treballar amb dades estructurades o tabulars, com ara fitxers CSV o bases de dades SQL. Aquesta biblioteca simplifica molts aspectes de la manipulació de dades, convertint-la en una eina essencial per a l'anàlisi de dades i l'aprenentatge automàtic.

En conclusió, es pot desxifrar les cadenes xifrades desades en un fitxer CSV mitjançant Fernet i Pandas seguint els passos que s'indiquen en aquest article. En crear una funció de desxifrat personalitzada i aplicar-la al marc de dades, podem desxifrar de manera efectiva les dades sensibles emmagatzemades al fitxer CSV.

Articles Relacionats:

Deixa el teu comentari