Rezolvat: Fernet%3A nu pot decripta șirurile salvate în csv cu panda

Fernet este o bibliotecă de criptare simetrică în Python care oferă criptare sigură și ușor de utilizat pentru datele sensibile. Un caz comun de utilizare pentru Fernet este criptarea datelor înainte de a le stoca într-un fișier CSV, asigurându-se că numai părțile autorizate le pot accesa. Cu toate acestea, decriptarea acestor șiruri criptate într-un fișier CSV poate fi puțin dificilă, mai ales când utilizați biblioteca Pandas.

În acest articol, vom discuta despre o soluție la problema decriptării șirurilor salvate într-un fișier CSV folosind Fernet și Pandas. Vom oferi o explicație pas cu pas a codului și vom analiza funcțiile și bibliotecile relevante implicate în proces.

Pentru început, să discutăm problema în detaliu. Când utilizați criptarea Fernet pentru a securiza datele înainte de a le stoca într-un fișier CSV, poate fi dificil să decriptați datele înapoi în timp ce utilizați Pandas pentru a citi fișierul. Șirurile criptate necesită o manipulare adecvată pentru a le asigura integritatea în timpul decriptării.

Soluție pentru problemă

O posibilă soluție la această problemă este să utilizați funcții personalizate și să le aplicați cadrului de date obținut din fișierul CSV. Vom crea o funcție pentru a decripta șirurile criptate folosind biblioteca Fernet și apoi vom aplica această funcție cadrului de date Pandas care conține datele criptate.

Iată o explicație pas cu pas a codului:

1. Mai întâi, trebuie să importăm bibliotecile necesare:

import pandas as pd
from cryptography.fernet import Fernet

2. Apoi, să generăm o cheie Fernet și să criptăm câteva date eșantion. Să presupunem că am criptat următoarele date și le-am salvat într-un fișier CSV numit „encrypted_data.csv” cu două coloane „date” și „criptat”:

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

3. Acum, să creăm o funcție pentru a decripta șirurile criptate cu cheia Fernet dată:

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. Putem citi fișierul CSV care conține date criptate folosind Pandas:

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

5. În cele din urmă, aplicați funcția „decrypt_string” la coloana criptată a cadrului de date folosind metoda „apply” și stocați datele decriptate într-o coloană nouă. Rețineți că trebuie să treceți cheia ca argument suplimentar în metoda „aplicare”:

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

Biblioteca Fernet

la distanta este o bibliotecă criptografică populară în Python care oferă metode ușor de utilizat pentru criptarea și decriptarea datelor cu criptografia cu cheie simetrică AES. Biblioteca garantează că datele criptate folosind Fernet nu pot fi manipulate sau citite în continuare fără cheie, asigurând confidențialitatea și integritatea datelor. Fernet utilizează codificare URL-safe/base64 pentru textele cifrate, ceea ce îl face potrivit pentru stocarea datelor criptate în fișiere sau baze de date.

Biblioteca Pandas

ursi panda este o bibliotecă open-source de manipulare și analiză a datelor în Python. Oferă structuri de date, cum ar fi Series și DataFrame, și diverse funcții pentru manipularea, transformarea și vizualizarea datelor. Pandas este deosebit de util pentru lucrul cu date structurate sau tabulare, cum ar fi fișiere CSV sau baze de date SQL. Această bibliotecă simplifică multe aspecte ale manipulării datelor, făcând-o un instrument esențial pentru analiza datelor și învățarea automată.

În concluzie, decriptarea șirurilor criptate salvate într-un fișier CSV folosind Fernet și Pandas se poate realiza urmând pașii prevăzuți în acest articol. Prin crearea unei funcții de decriptare personalizată și aplicarea acesteia în cadrul de date, putem decripta eficient datele sensibile stocate în fișierul CSV.

Postări asemănatoare:

Lăsați un comentariu