Gelöst: Fernet%3A Kann in CSV gespeicherte Zeichenfolgen mit Pandas nicht entschlüsseln

Fernet ist eine symmetrische Verschlüsselungsbibliothek in Python, die eine sichere und benutzerfreundliche Verschlüsselung sensibler Daten bietet. Ein häufiger Anwendungsfall für Fernet ist das Verschlüsseln von Daten vor dem Speichern in einer CSV-Datei, um sicherzustellen, dass nur autorisierte Parteien darauf zugreifen können. Das Entschlüsseln dieser verschlüsselten Zeichenfolgen in einer CSV-Datei kann jedoch etwas schwierig sein, insbesondere bei Verwendung der Pandas-Bibliothek.

In diesem Artikel diskutieren wir eine Lösung für das Problem der Entschlüsselung von in einer CSV-Datei gespeicherten Zeichenfolgen mit Fernet und Pandas. Wir werden den Code Schritt für Schritt erklären und uns mit den relevanten Funktionen und Bibliotheken befassen, die an dem Prozess beteiligt sind.

Lassen Sie uns zunächst das Problem im Detail besprechen. Bei Verwendung der Fernet-Verschlüsselung zum Sichern von Daten vor dem Speichern in einer CSV-Datei kann es schwierig sein, die Daten wieder zu entschlüsseln, während Pandas zum Lesen der Datei verwendet wird. Die verschlüsselten Zeichenfolgen erfordern eine ordnungsgemäße Handhabung, um ihre Integrität während der Entschlüsselung sicherzustellen.

Lösung für das Problem

Eine mögliche Lösung für dieses Problem besteht darin, benutzerdefinierte Funktionen zu verwenden und sie auf den aus der CSV-Datei erhaltenen Datenrahmen anzuwenden. Wir erstellen eine Funktion zum Entschlüsseln der verschlüsselten Zeichenfolgen mithilfe der Fernet-Bibliothek und wenden diese Funktion dann auf den Pandas-Datenrahmen an, der die verschlüsselten Daten enthält.

Hier ist eine Schritt-für-Schritt-Erklärung des Codes:

1. Zuerst müssen wir die notwendigen Bibliotheken importieren:

import pandas as pd
from cryptography.fernet import Fernet

2. Lassen Sie uns dann einen Fernet-Schlüssel generieren und einige Beispieldaten verschlüsseln. Angenommen, wir haben die folgenden Daten verschlüsselt und in einer CSV-Datei namens „encrypted_data.csv“ mit zwei Spalten „data“ und „encrypted“ gespeichert:

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

3. Lassen Sie uns nun eine Funktion erstellen, um die verschlüsselten Zeichenfolgen mit dem angegebenen Fernet-Schlüssel zu entschlüsseln:

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. Wir können die CSV-Datei mit verschlüsselten Daten mit Pandas lesen:

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

5. Wenden Sie abschließend die Funktion „decrypt_string“ mit der Methode „apply“ auf die verschlüsselte Spalte des Datenrahmens an und speichern Sie die entschlüsselten Daten in einer neuen Spalte. Beachten Sie, dass Sie den Schlüssel als zusätzliches Argument in der Methode „apply“ übergeben müssen:

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

Fernet-Bibliothek

Fernet ist eine beliebte kryptografische Bibliothek in Python, die benutzerfreundliche Methoden zum Verschlüsseln und Entschlüsseln von Daten mit AES-Kryptografie mit symmetrischen Schlüsseln bereitstellt. Die Bibliothek garantiert, dass mit Fernet verschlüsselte Daten ohne den Schlüssel nicht weiter manipuliert oder gelesen werden können, wodurch die Vertraulichkeit und Integrität der Daten gewährleistet wird. Fernet verwendet eine URL-sichere/Base64-Codierung für Chiffretexte, wodurch es sich zum Speichern verschlüsselter Daten in Dateien oder Datenbanken eignet.

Pandas-Bibliothek

Pandas ist eine Open-Source-Datenmanipulations- und Datenanalysebibliothek in Python. Es bietet Datenstrukturen wie Series und DataFrame sowie verschiedene Funktionen zum Handhaben, Transformieren und Visualisieren von Daten. Pandas ist besonders nützlich für die Arbeit mit strukturierten oder tabellarischen Daten wie CSV-Dateien oder SQL-Datenbanken. Diese Bibliothek vereinfacht viele Aspekte der Datenmanipulation und macht sie zu einem unverzichtbaren Werkzeug für Datenanalyse und maschinelles Lernen.

Zusammenfassend lässt sich sagen, dass das Entschlüsseln verschlüsselter Zeichenfolgen, die in einer CSV-Datei mit Fernet und Pandas gespeichert sind, durch Befolgen der in diesem Artikel beschriebenen Schritte erreicht werden kann. Indem wir eine benutzerdefinierte Entschlüsselungsfunktion erstellen und auf den Datenrahmen anwenden, können wir die in der CSV-Datei gespeicherten sensiblen Daten effektiv entschlüsseln.

Zusammenhängende Posts:

Hinterlasse einen Kommentar