Решено: Fernet%3A не может расшифровать строки, сохраненные в csv, с помощью pandas.

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» с двумя столбцами «данные» и «зашифровано»:

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» к зашифрованному столбцу фрейма данных, используя метод «применить», и сохраните расшифрованные данные в новом столбце. Обратите внимание, что вам нужно передать ключ в качестве дополнительного аргумента в методе «применить»:

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.

Похожие посты:

Оставьте комментарий