Riješeno: Fernet%3A ne može dešifrirati nizove spremljene u csv s 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, čime se osigurava da im samo ovlaštene strane mogu pristupiti. Međutim, dešifriranje ovih šifriranih nizova u CSV datoteci može biti malo nezgodno, posebno kada se koristi Pandas biblioteka.

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

Za početak, raspravimo problem u detalje. Kada koristite Fernet enkripciju za zaštitu podataka prije pohranjivanja 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 tijekom dešifriranja.

Rješenje problema

Potencijalno rješenje ovog problema je korištenje prilagođenih funkcija i njihova primjena na podatkovni okvir dobiven iz CSV datoteke. Stvorit ćemo funkciju za dešifriranje šifriranih nizova pomoću biblioteke Fernet, a zatim primijeniti ovu funkciju na okvir podataka Pandas koji sadrži šifrirane podatke.

Ovdje je objašnjenje koda korak po korak:

1. Prvo moramo uvesti potrebne biblioteke:

import pandas as pd
from cryptography.fernet import Fernet

2. Zatim, generirajmo Fernet ključ i šifrirajmo neke ogledne podatke. Pretpostavimo da smo šifrirali sljedeće podatke i spremili ih u CSV datoteku pod nazivom “encrypted_data.csv” s dva stupca “data” 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. Kreirajmo sada funkciju za dekriptiranje šifriranih nizova s ​​danim 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 pročitati CSV datoteku koja sadrži šifrirane podatke pomoću Panda:

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

5. Na kraju, primijenite funkciju 'decrypt_string' na šifrirani stupac podatkovnog okvira koristeći metodu 'apply' i pohranite dešifrirane podatke u novi stupac. Imajte na umu da trebate proslijediti ključ kao dodatni argument u metodi 'primjeni':

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

Biblioteka Fernet

daljinski 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. Knjižnica 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 prikladnim za pohranjivanje šifriranih podataka u datoteke ili baze podataka.

Pandas knjižnica

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

Zaključno, dešifriranje šifriranih nizova spremljenih u CSV datoteci pomoću Ferneta i Panda može se postići slijedeći korake navedene u ovom članku. Stvaranjem prilagođene funkcije dešifriranja i njezinom primjenom na podatkovni okvir, možemo učinkovito dešifrirati osjetljive podatke pohranjene u CSV datoteci.

Povezani postovi:

Ostavite komentar