Rešeno: Fernet%3A Ne može dešifrovati nizove sačuvane u csv sa pandama

Fernet je biblioteka simetrične enkripcije u Pythonu koja pruža sigurnu i jednostavnu enkripciju za osjetljive podatke. Jedan uobičajeni slučaj upotrebe Ferneta je šifriranje podataka prije pohranjivanja u CSV datoteku, osiguravajući da im samo ovlaštene strane mogu pristupiti. Međutim, dešifriranje ovih šifriranih stringova u CSV datoteci može biti malo nezgodno, posebno kada se koristi Pandas biblioteka.

U ovom članku ćemo raspravljati o rješenju problema dešifriranja nizova pohranjenih u CSV datoteci pomoću Ferneta i Pandasa. Pružit ćemo objašnjenje koda korak po korak i ući u relevantne funkcije i biblioteke uključene u proces.

Za početak, razgovarajmo o problemu u detalje. Kada koristite Fernet enkripciju za osiguranje podataka prije nego što ih pohranite u CSV datoteku, može biti izazovno dešifrirati podatke natrag dok koristite Pandas za čitanje datoteke. Šifrirani nizovi zahtijevaju pravilno rukovanje kako bi se osigurao njihov integritet tokom dešifriranja.

Rješenje problema

Potencijalno rješenje ovog problema je korištenje prilagođenih funkcija i njihova primjena na okvir podataka dobiven iz CSV datoteke. Kreiraćemo funkciju za dešifrovanje šifrovanih stringova koristeći Fernet biblioteku, a zatim primeniti ovu funkciju na Pandas okvir podataka koji sadrži šifrovane podatke.

Evo korak po korak objašnjenja koda:

1. Prvo, moramo uvesti potrebne biblioteke:

import pandas as pd
from cryptography.fernet import Fernet

2. Zatim, generirajmo Fernet ključ i šifrirajmo neke uzorke podataka. Pretpostavimo da smo šifrirali sljedeće podatke i spremili ih u CSV datoteku pod nazivom “encrypted_data.csv” sa dvije kolone “podaci” i “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. Sada, napravimo funkciju za dešifriranje šifriranih nizova sa datim Fernet ključem:

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. Možemo čitati CSV datoteku koja sadrži šifrirane podatke koristeći Pandas:

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

5. Konačno, primijenite funkciju 'decrypt_string' na šifrirani stupac okvira podataka koristeći metodu 'apply' i pohranite dešifrirane podatke u novu kolonu. Imajte na umu da morate proslijediti ključ kao dodatni argument u metodi 'apply':

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

Fernet biblioteka

fernet je popularna kriptografska biblioteka u Pythonu koja pruža metode jednostavne za korištenje za šifriranje i dešifriranje podataka pomoću AES kriptografije sa simetričnim ključem. Biblioteka jamči da se podacima šifriranim pomoću Ferneta ne može dalje manipulirati ili čitati bez ključa, čime se osigurava povjerljivost i integritet podataka. Fernet koristi URL-safe/base64 kodiranje za šifrirane tekstove, što ga čini pogodnim za pohranjivanje šifriranih podataka u datoteke ili baze podataka.

Pandas Library

Pandas je biblioteka otvorenog koda za manipulaciju podacima i analizu podataka u Pythonu. Pruža strukture podataka, kao što su Series i DataFrame, i razne funkcije za rukovanje, transformaciju i vizualizaciju podataka. Pandas je posebno koristan za rad sa strukturiranim ili tabelarnim podacima, kao što su CSV datoteke ili SQL baze podataka. Ova biblioteka pojednostavljuje mnoge aspekte manipulacije podacima, čineći je osnovnim alatom za analizu podataka i mašinsko učenje.

U zaključku, dešifriranje šifriranih stringova sačuvanih u CSV datoteci pomoću Ferneta i Pandas može se postići slijedeći korake navedene u ovom članku. Kreiranjem prilagođene funkcije dešifriranja i primjenom na okvir podataka, možemo efikasno dešifrirati osjetljive podatke pohranjene u CSV datoteci.

Slični postovi:

Ostavite komentar