Vyřešeno: Fernet%3A Nelze dešifrovat řetězce uložené v csv s pandami

Fernet je symetrická šifrovací knihovna v Pythonu, která poskytuje bezpečné a snadno použitelné šifrování pro citlivá data. Jedním z běžných případů použití Fernetu je šifrování dat před jejich uložením do souboru CSV, aby k nim měly přístup pouze oprávněné strany. Dešifrování těchto zašifrovaných řetězců v souboru CSV však může být trochu složité, zejména při použití knihovny Pandas.

V tomto článku se budeme zabývat řešením problému dešifrování řetězců uložených v souboru CSV pomocí Fernet a Pandas. Poskytneme podrobné vysvětlení kódu a ponoříme se do příslušných funkcí a knihoven zapojených do procesu.

Pro začátek si proberme problém podrobně. Při použití šifrování Fernet k zabezpečení dat před jejich uložením do souboru CSV může být náročné dešifrovat data zpět při používání Pandas pro čtení souboru. Šifrované řetězce vyžadují správné zacházení, aby byla zajištěna jejich integrita během dešifrování.

Řešení Problému

Potenciálním řešením tohoto problému je použití vlastních funkcí a jejich aplikace na datový rámec získaný ze souboru CSV. Vytvoříme funkci pro dešifrování zašifrovaných řetězců pomocí knihovny Fernet a poté tuto funkci aplikujeme na datový rámec Pandas obsahující zašifrovaná data.

Zde je podrobné vysvětlení kódu:

1. Nejprve musíme importovat potřebné knihovny:

import pandas as pd
from cryptography.fernet import Fernet

2. Poté vygenerujme Fernet klíč a zašifrujeme některá ukázková data. Předpokládejme, že jsme zašifrovali následující data a uložili je do souboru CSV s názvem „encrypted_data.csv“ se dvěma sloupci „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. Nyní vytvoříme funkci pro dešifrování zašifrovaných řetězců pomocí daného klíče 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. Soubor CSV obsahující zašifrovaná data můžeme číst pomocí Pandas:

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

5. Nakonec aplikujte funkci 'decrypt_string' na zašifrovaný sloupec datového rámce pomocí metody 'apply' a uložte dešifrovaná data do nového sloupce. Všimněte si, že klíč musíte předat jako další argument v metodě „použít“:

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

Knihovna Fernet

fernet je populární kryptografická knihovna v Pythonu, která poskytuje snadno použitelné metody pro šifrování a dešifrování dat pomocí kryptografie se symetrickým klíčem AES. Knihovna zaručuje, že data zašifrovaná pomocí Fernetu nemohou být dále manipulována nebo čtena bez klíče, což zajišťuje důvěrnost a integritu dat. Fernet používá pro šifrované texty URL-safe/base64 kódování, díky čemuž je vhodný pro ukládání zašifrovaných dat do souborů nebo databází.

Knihovna pand

Pandy je open-source knihovna pro manipulaci s daty a analýzu dat v Pythonu. Poskytuje datové struktury, jako jsou Series a DataFrame, a různé funkce pro manipulaci, transformaci a vizualizaci dat. Pandas je zvláště užitečný pro práci se strukturovanými nebo tabulkovými daty, jako jsou soubory CSV nebo databáze SQL. Tato knihovna zjednodušuje mnoho aspektů manipulace s daty, což z ní činí základní nástroj pro analýzu dat a strojové učení.

Závěrem lze říci, že dešifrování zašifrovaných řetězců uložených v souboru CSV pomocí Fernet a Pandas lze provést podle kroků uvedených v tomto článku. Vytvořením vlastní dešifrovací funkce a její aplikací na datový rámec můžeme efektivně dešifrovat citlivá data uložená v souboru CSV.

Související příspěvky:

Zanechat komentář