Vyriešené: Fernet%3A Nie je možné dešifrovať reťazce uložené v csv s pandami

Fernet je symetrická šifrovacia knižnica v Pythone, ktorá poskytuje bezpečné a ľahko použiteľné šifrovanie pre citlivé údaje. Jedným z bežných prípadov použitia Fernetu je šifrovanie údajov pred ich uložením do súboru CSV, čím sa zabezpečí, že k nim budú mať prístup iba autorizované strany. Dešifrovanie týchto zašifrovaných reťazcov v súbore CSV však môže byť trochu zložité, najmä pri použití knižnice Pandas.

V tomto článku budeme diskutovať o riešení problému dešifrovania reťazcov uložených v súbore CSV pomocou Fernet a Pandas. Poskytneme podrobné vysvetlenie kódu a ponoríme sa do relevantných funkcií a knižníc zapojených do procesu.

Na začiatok poďme diskutovať o probléme podrobne. Pri používaní šifrovania Fernet na zabezpečenie údajov pred ich uložením do súboru CSV môže byť náročné dešifrovať údaje späť počas používania Pandas na čítanie súboru. Zašifrované reťazce vyžadujú správne zaobchádzanie, aby sa zabezpečila ich integrita počas dešifrovania.

Riešenie Problému

Potenciálnym riešením tohto problému je použiť vlastné funkcie a aplikovať ich na dátový rámec získaný zo súboru CSV. Vytvoríme funkciu na dešifrovanie zašifrovaných reťazcov pomocou knižnice Fernet a potom túto funkciu použijeme na dátový rámec Pandas obsahujúci zašifrované dáta.

Tu je podrobné vysvetlenie kódu:

1. Najprv musíme importovať potrebné knižnice:

import pandas as pd
from cryptography.fernet import Fernet

2. Potom vygenerujme Fernet kľúč a zašifrujeme niektoré vzorové dáta. Predpokladajme, že sme zašifrovali nasledujúce údaje a uložili ich do súboru CSV s názvom „encrypted_data.csv“ s dvoma stĺpcami „data“ a „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. Teraz vytvorme funkciu na dešifrovanie zašifrovaných reťazcov pomocou daného Fernet kľúča:

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. Súbor CSV obsahujúci zašifrované údaje môžeme prečítať pomocou Pandas:

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

5. Nakoniec použite funkciu 'decrypt_string' na zašifrovaný stĺpec dátového rámca pomocou metódy 'apply' a uložte dešifrované dáta do nového stĺpca. Upozorňujeme, že kľúč musíte odovzdať ako ďalší argument v metóde „použiť“:

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

Knižnica Fernet

Fernet je populárna kryptografická knižnica v Pythone, ktorá poskytuje ľahko použiteľné metódy na šifrovanie a dešifrovanie údajov pomocou kryptografie so symetrickým kľúčom AES. Knižnica zaručuje, že údaje zašifrované pomocou Fernetu nemožno ďalej manipulovať alebo čítať bez kľúča, čím je zaručená dôvernosť a integrita údajov. Fernet používa pre šifrované texty URL-safe/base64 kódovanie, vďaka čomu je vhodný na ukladanie zašifrovaných dát do súborov alebo databáz.

Pandas Library

pandy je open source knižnica na manipuláciu a analýzu údajov v Pythone. Poskytuje dátové štruktúry, ako napríklad Series a DataFrame, a rôzne funkcie na manipuláciu, transformáciu a vizualizáciu dát. Pandas je obzvlášť užitočný pri práci so štruktúrovanými alebo tabuľkovými údajmi, ako sú súbory CSV alebo databázy SQL. Táto knižnica zjednodušuje mnohé aspekty manipulácie s údajmi, vďaka čomu je základným nástrojom pre analýzu údajov a strojové učenie.

Na záver, dešifrovanie zašifrovaných reťazcov uložených v súbore CSV pomocou Fernet a Pandas je možné dosiahnuť podľa krokov uvedených v tomto článku. Vytvorením vlastnej dešifrovacej funkcie a jej aplikáciou na dátový rámec môžeme efektívne dešifrovať citlivé dáta uložené v súbore CSV.

Súvisiace príspevky:

Pridať komentár