Rešeno: Fernet%3A ni mogoče dešifrirati nizov, shranjenih v csv s pandami

Fernet je simetrična šifrirna knjižnica v Pythonu, ki zagotavlja varno šifriranje občutljivih podatkov, ki je preprosto za uporabo. Eden pogostih primerov uporabe za Fernet je šifriranje podatkov, preden jih shranite v datoteko CSV, s čimer zagotovite, da lahko do njih dostopajo samo pooblaščene osebe. Vendar pa je lahko dešifriranje teh šifriranih nizov v datoteki CSV nekoliko težavno, zlasti pri uporabi knjižnice Pandas.

V tem članku bomo razpravljali o rešitvi problema dešifriranja nizov, shranjenih v datoteki CSV, z uporabo Ferneta in Pande. Poskrbeli bomo za razlago kode po korakih in se poglobili v ustrezne funkcije in knjižnice, vključene v proces.

Za začetek se podrobneje pogovorimo o problemu. Pri uporabi šifriranja Fernet za zaščito podatkov, preden jih shranite v datoteko CSV, je morda težko dešifrirati podatke nazaj, medtem ko za branje datoteke uporabljate Pandas. Šifrirani nizi zahtevajo pravilno ravnanje, da zagotovimo njihovo celovitost med dešifriranjem.

Rešitev problema

Potencialna rešitev te težave je uporaba funkcij po meri in njihova uporaba v podatkovnem okviru, pridobljenem iz datoteke CSV. Ustvarili bomo funkcijo za dešifriranje šifriranih nizov s knjižnico Fernet in nato to funkcijo uporabili za podatkovni okvir Pandas, ki vsebuje šifrirane podatke.

Tukaj je razlaga kode po korakih:

1. Najprej moramo uvoziti potrebne knjižnice:

import pandas as pd
from cryptography.fernet import Fernet

2. Nato ustvarimo ključ Fernet in šifrirajmo nekaj vzorčnih podatkov. Recimo, da smo šifrirali naslednje podatke in jih shranili v datoteko CSV z imenom »encrypted_data.csv« z dvema stolpcema »data« in »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. Sedaj pa ustvarimo funkcijo za dešifriranje šifriranih nizov z danim ključem Fernet:

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. Datoteko CSV, ki vsebuje šifrirane podatke, lahko preberemo s Pandas:

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

5. Končno uporabite funkcijo 'decrypt_string' za šifrirani stolpec podatkovnega okvira z uporabo metode 'uporabi' in shranite dešifrirane podatke v nov stolpec. Upoštevajte, da morate posredovati ključ kot dodaten argument v metodi 'uporabi':

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

Knjižnica Fernet

fernet je priljubljena kriptografska knjižnica v Pythonu, ki ponuja preproste metode za šifriranje in dešifriranje podatkov s kriptografijo s simetričnim ključem AES. Knjižnica zagotavlja, da s podatki, šifriranimi s Fernetom, ni mogoče nadalje manipulirati ali brati brez ključa, kar zagotavlja zaupnost in celovitost podatkov. Fernet uporablja kodiranje URL-safe/base64 za šifrirana besedila, zaradi česar je primeren za shranjevanje šifriranih podatkov v datotekah ali zbirkah podatkov.

Pandas knjižnica

pand je odprtokodna knjižnica za obdelavo in analizo podatkov v Pythonu. Ponuja podatkovne strukture, kot sta Series in DataFrame, ter različne funkcije za obdelavo, preoblikovanje in vizualizacijo podatkov. Pandas je še posebej uporaben za delo s strukturiranimi ali tabelarnimi podatki, kot so datoteke CSV ali baze podatkov SQL. Ta knjižnica poenostavlja številne vidike obdelave podatkov, zaradi česar je bistveno orodje za analizo podatkov in strojno učenje.

Skratka, dešifriranje šifriranih nizov, shranjenih v datoteki CSV z uporabo Ferneta in Pand, lahko dosežete tako, da sledite korakom v tem članku. Če ustvarimo funkcijo dešifriranja po meri in jo uporabimo za podatkovni okvir, lahko učinkovito dešifriramo občutljive podatke, shranjene v datoteki CSV.

Podobni objav:

Pustite komentar