Löst: Fernet%3A Kan inte dekryptera strängar sparade i csv med pandor

Fernet är ett symmetriskt krypteringsbibliotek i Python som ger säker och lättanvänd kryptering för känslig data. Ett vanligt användningsfall för Fernet är att kryptera data innan de lagras i en CSV-fil, vilket säkerställer att endast auktoriserade parter kan komma åt dem. Att dekryptera dessa krypterade strängar i en CSV-fil kan dock vara lite knepigt, speciellt när du använder Pandas bibliotek.

I den här artikeln kommer vi att diskutera en lösning på problemet med att dekryptera strängar sparade i en CSV-fil med Fernet och Pandas. Vi kommer att ge en steg-för-steg förklaring av koden och fördjupa oss i de relevanta funktionerna och biblioteken som är involverade i processen.

Till att börja med, låt oss diskutera problemet i detalj. När du använder Fernet-kryptering för att säkra data innan du lagrar den i en CSV-fil, kan det vara svårt att dekryptera tillbaka data medan du använder Pandas för att läsa filen. De krypterade strängarna kräver korrekt hantering för att säkerställa deras integritet under dekryptering.

Lösning på problemet

En potentiell lösning på detta problem är att använda anpassade funktioner och tillämpa dem på dataramen som erhålls från CSV-filen. Vi kommer att skapa en funktion för att dekryptera de krypterade strängarna med hjälp av Fernet-biblioteket, och sedan tillämpa denna funktion på Pandas dataram som innehåller den krypterade datan.

Här är en steg-för-steg förklaring av koden:

1. Först måste vi importera de nödvändiga biblioteken:

import pandas as pd
from cryptography.fernet import Fernet

2. Låt oss sedan generera en Fernet-nyckel och kryptera några exempeldata. Anta att vi har krypterat följande data och sparat dem i en CSV-fil med namnet "encrypted_data.csv" med två kolumner "data" och "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. Låt oss nu skapa en funktion för att dekryptera de krypterade strängarna med den givna Fernet-nyckeln:

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. Vi kan läsa CSV-filen som innehåller krypterad data med Pandas:

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

5. Till sist, applicera 'decrypt_string'-funktionen på den krypterade kolumnen i dataramen med 'apply'-metoden och lagra den dekrypterade datan i en ny kolumn. Observera att du måste skicka nyckeln som ett ytterligare argument i "apply"-metoden:

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

Fernet bibliotek

Fernet är ett populärt kryptografiskt bibliotek i Python som tillhandahåller lättanvända metoder för att kryptera och dekryptera data med AES-kryptering med symmetrisk nyckel. Biblioteket garanterar att data som krypteras med Fernet inte kan manipuleras eller läsas ytterligare utan nyckeln, vilket säkerställer datakonfidentialitet och integritet. Fernet använder URL-safe/base64-kodning för chiffertexter, vilket gör den lämplig för att lagra krypterad data i filer eller databaser.

Pandas bibliotek

pandas är ett bibliotek med öppen källkod för datamanipulation och dataanalys i Python. Den tillhandahåller datastrukturer, såsom Series och DataFrame, och olika funktioner för att hantera, transformera och visualisera data. Pandas är särskilt användbart för att arbeta med strukturerad eller tabellformad data, som CSV-filer eller SQL-databaser. Detta bibliotek förenklar många aspekter av datamanipulation, vilket gör det till ett viktigt verktyg för dataanalys och maskininlärning.

Sammanfattningsvis kan dekryptera krypterade strängar sparade i en CSV-fil med Fernet och Pandas uppnås genom att följa stegen i den här artikeln. Genom att skapa en anpassad dekrypteringsfunktion och tillämpa den på dataramen kan vi effektivt dekryptera den känsliga informationen som lagras i CSV-filen.

Relaterade inlägg:

Lämna en kommentar