Løst: Fernet%3A Kan ikke dekryptere strenger lagret i csv med pandaer

Fernet er et symmetrisk krypteringsbibliotek i Python som gir sikker og brukervennlig kryptering for sensitive data. En vanlig brukssak for Fernet er å kryptere data før de lagres i en CSV-fil, for å sikre at bare autoriserte parter har tilgang til dem. Imidlertid kan det være litt vanskelig å dekryptere disse krypterte strengene i en CSV-fil, spesielt når du bruker Pandas-biblioteket.

I denne artikkelen vil vi diskutere en løsning på problemet med å dekryptere strenger som er lagret i en CSV-fil ved hjelp av Fernet og Pandas. Vi vil gi en trinnvis forklaring av koden, og fordype oss i de relevante funksjonene og bibliotekene som er involvert i prosessen.

Til å begynne med, la oss diskutere problemet i detalj. Når du bruker Fernet-kryptering for å sikre data før du lagrer dem i en CSV-fil, kan det være utfordrende å dekryptere dataene tilbake mens du bruker Pandas til å lese filen. De krypterte strengene krever riktig håndtering for å sikre deres integritet under dekryptering.

Løsning på problemet

En mulig løsning på dette problemet er å bruke egendefinerte funksjoner og bruke dem på datarammen hentet fra CSV-filen. Vi vil lage en funksjon for å dekryptere de krypterte strengene ved å bruke Fernet-biblioteket, og deretter bruke denne funksjonen på Pandas-datarammen som inneholder de krypterte dataene.

Her er en trinnvis forklaring av koden:

1. Først må vi importere de nødvendige bibliotekene:

import pandas as pd
from cryptography.fernet import Fernet

2. La oss deretter generere en Fernet-nøkkel og kryptere noen eksempeldata. Anta at vi har kryptert følgende data og lagret dem i en CSV-fil kalt "encrypted_data.csv" med to kolonner "data" og "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. La oss nå lage en funksjon for å dekryptere de krypterte strengene med den gitte Fernet-nøkkelen:

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 lese CSV-filen som inneholder krypterte data ved å bruke Pandas:

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

5. Til slutt, bruk 'dekrypteringsstreng'-funksjonen på den krypterte kolonnen i datarammen ved å bruke 'bruk'-metoden og lagre de dekrypterte dataene i en ny kolonne. Merk at du må sende nøkkelen som et tilleggsargument i 'bruk'-metoden:

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

Fernet bibliotek

fernet er et populært kryptografisk bibliotek i Python som gir brukervennlige metoder for kryptering og dekryptering av data med AES symmetrisk nøkkelkryptografi. Biblioteket garanterer at data kryptert med Fernet ikke kan manipuleres eller leses videre uten nøkkelen, noe som sikrer datakonfidensialitet og integritet. Fernet bruker URL-safe/base64-koding for chiffertekster, noe som gjør den egnet for lagring av krypterte data i filer eller databaser.

Pandas bibliotek

pandaer er et bibliotek med åpen kildekode for datamanipulering og dataanalyse i Python. Det gir datastrukturer, som Series og DataFrame, og ulike funksjoner for håndtering, transformering og visualisering av data. Pandas er spesielt nyttig for å jobbe med strukturerte eller tabellformede data, for eksempel CSV-filer eller SQL-databaser. Dette biblioteket forenkler mange aspekter ved datamanipulering, noe som gjør det til et viktig verktøy for dataanalyse og maskinlæring.

Avslutningsvis kan dekryptere krypterte strenger lagret i en CSV-fil ved hjelp av Fernet og Pandas oppnås ved å følge trinnene i denne artikkelen. Ved å lage en tilpasset dekrypteringsfunksjon og bruke den på datarammen, kan vi effektivt dekryptere de sensitive dataene som er lagret i CSV-filen.

Relaterte innlegg:

Legg igjen en kommentar