Rozwiązany: Fernet%3A Nie można odszyfrować ciągów zapisanych w csv za pomocą pand

Fernet to symetryczna biblioteka szyfrowania w Pythonie, która zapewnia bezpieczne i łatwe w użyciu szyfrowanie poufnych danych. Jednym z typowych przypadków użycia Fernet jest szyfrowanie danych przed zapisaniem ich w pliku CSV, dzięki czemu dostęp do nich mają tylko upoważnione osoby. Jednak odszyfrowanie tych zaszyfrowanych ciągów znaków w pliku CSV może być nieco trudne, szczególnie w przypadku korzystania z biblioteki Pandas.

W tym artykule omówimy rozwiązanie problemu deszyfrowania napisów zapisanych w pliku CSV za pomocą Ferneta i Pandy. Wyjaśnimy krok po kroku kod i zagłębimy się w odpowiednie funkcje i biblioteki zaangażowane w ten proces.

Na początek omówmy szczegółowo problem. W przypadku korzystania z szyfrowania Fernet w celu zabezpieczenia danych przed zapisaniem ich w pliku CSV odszyfrowanie danych z powrotem podczas używania Pandas do odczytu pliku może być trudne. Zaszyfrowane łańcuchy wymagają odpowiedniej obsługi, aby zapewnić ich integralność podczas odszyfrowywania.

Rozwiązaniem problemu

Potencjalnym rozwiązaniem tego problemu jest użycie niestandardowych funkcji i zastosowanie ich do ramki danych uzyskanej z pliku CSV. Stworzymy funkcję do odszyfrowania zaszyfrowanych ciągów znaków za pomocą biblioteki Fernet, a następnie zastosujemy tę funkcję do ramki danych Pandas zawierającej zaszyfrowane dane.

Oto objaśnienie kodu krok po kroku:

1. Najpierw musimy zaimportować niezbędne biblioteki:

import pandas as pd
from cryptography.fernet import Fernet

2. Następnie wygenerujmy klucz Fernet i zaszyfrujmy przykładowe dane. Załóżmy, że zaszyfrowaliśmy następujące dane i zapisaliśmy je w pliku CSV o nazwie „encrypted_data.csv” z dwiema kolumnami „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. Teraz stwórzmy funkcję do odszyfrowania zaszyfrowanych ciągów za pomocą podanego klucza Fernet:

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. Plik CSV zawierający zaszyfrowane dane możemy odczytać za pomocą Pand:

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

5. Na koniec zastosuj funkcję „decrypt_string” do zaszyfrowanej kolumny ramki danych za pomocą metody „apply” i zapisz odszyfrowane dane w nowej kolumnie. Pamiętaj, że musisz przekazać klucz jako dodatkowy argument w metodzie „zastosuj”:

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

Biblioteka Ferneta

Fernet to popularna biblioteka kryptograficzna w języku Python, która zapewnia łatwe w użyciu metody szyfrowania i deszyfrowania danych za pomocą kryptografii z kluczem symetrycznym AES. Biblioteka gwarantuje, że danymi zaszyfrowanymi przy użyciu Fernet nie można dalej manipulować ani czytać bez klucza, zapewniając poufność i integralność danych. Fernet używa kodowania URL-safe/base64 dla tekstów zaszyfrowanych, dzięki czemu nadaje się do przechowywania zaszyfrowanych danych w plikach lub bazach danych.

Biblioteka Pand

Pandy to otwarta biblioteka do manipulacji i analizy danych w języku Python. Zapewnia struktury danych, takie jak Series i DataFrame, oraz różne funkcje do obsługi, przekształcania i wizualizacji danych. Pandy są szczególnie przydatne do pracy z danymi strukturalnymi lub tabelarycznymi, takimi jak pliki CSV lub bazy danych SQL. Ta biblioteka upraszcza wiele aspektów manipulacji danymi, dzięki czemu jest niezbędnym narzędziem do analizy danych i uczenia maszynowego.

Podsumowując, odszyfrowanie zaszyfrowanych ciągów zapisanych w pliku CSV za pomocą Fernet i Pandas można wykonać, wykonując czynności opisane w tym artykule. Tworząc niestandardową funkcję deszyfrowania i stosując ją do ramki danych, możemy skutecznie odszyfrować wrażliwe dane przechowywane w pliku CSV.

Powiązane posty:

Zostaw komentarz