Вирішено: Fernet%3A не вдається розшифрувати рядки, збережені в csv за допомогою панд

Fernet — це бібліотека симетричного шифрування на Python, яка забезпечує безпечне та просте у використанні шифрування конфіденційних даних. Одним із поширених випадків використання Fernet є шифрування даних перед збереженням у файлі CSV, гарантуючи доступ до них лише авторизованим сторонам. Однак розшифровка цих зашифрованих рядків у файлі CSV може бути трохи складною, особливо при використанні бібліотеки Pandas.

У цій статті ми обговоримо вирішення проблеми розшифровки рядків, збережених у файлі CSV, за допомогою Fernet і Pandas. Ми надамо покрокове пояснення коду та заглибимося у відповідні функції та бібліотеки, залучені до процесу.

Для початку обговоримо проблему докладніше. Під час використання шифрування Fernet для захисту даних перед збереженням у файлі CSV може бути складно розшифрувати дані назад під час використання Pandas для читання файлу. Зашифровані рядки потребують належного поводження, щоб забезпечити їх цілісність під час дешифрування.

Рішення проблеми

Потенційним вирішенням цієї проблеми є використання спеціальних функцій і їх застосування до фрейму даних, отриманого з файлу CSV. Ми створимо функцію для розшифровки зашифрованих рядків за допомогою бібліотеки Fernet, а потім застосуємо цю функцію до фрейму даних Pandas, що містить зашифровані дані.

Ось покрокове пояснення коду:

1. Спочатку нам потрібно імпортувати необхідні бібліотеки:

import pandas as pd
from cryptography.fernet import Fernet

2. Потім давайте згенеруємо ключ Fernet і зашифруємо деякі зразки даних. Припустімо, ми зашифрували такі дані та зберегли їх у файлі CSV під назвою «encrypted_data.csv» із двома стовпцями «data» та «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. Тепер давайте створимо функцію для розшифровки зашифрованих рядків за допомогою даного ключа 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. Ми можемо прочитати файл CSV із зашифрованими даними за допомогою Pandas:

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

5. Нарешті, застосуйте функцію decrypt_string до зашифрованого стовпця фрейму даних за допомогою методу apply і збережіть розшифровані дані в новому стовпці. Зауважте, що вам потрібно передати ключ як додатковий аргумент у методі apply:

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

Бібліотека Фернет

Fernet це популярна криптографічна бібліотека на Python, яка надає прості у використанні методи шифрування та дешифрування даних за допомогою криптографії з симетричним ключем AES. Бібліотека гарантує, що даними, зашифрованими за допомогою Fernet, неможливо маніпулювати або читати без ключа, забезпечуючи конфіденційність і цілісність даних. Fernet використовує URL-safe/base64 кодування для зашифрованих текстів, що робить його придатним для зберігання зашифрованих даних у файлах або базах даних.

Бібліотека панд

Панди це бібліотека обробки та аналізу даних з відкритим кодом на Python. Він надає структури даних, такі як Series і DataFrame, і різні функції для обробки, перетворення та візуалізації даних. Pandas особливо корисний для роботи зі структурованими або табличними даними, такими як файли CSV або бази даних SQL. Ця бібліотека спрощує багато аспектів маніпулювання даними, роблячи її важливим інструментом для аналізу даних і машинного навчання.

Підсумовуючи, розшифрування зашифрованих рядків, збережених у файлі CSV за допомогою Fernet і Pandas, можна виконати, виконавши дії, наведені в цій статті. Створивши спеціальну функцію дешифрування та застосувавши її до фрейму даних, ми можемо ефективно дешифрувати конфіденційні дані, що зберігаються у файлі CSV.

Схожі повідомлення:

Залишити коментар