Diselesaikan: Fernet%3A Tidak dapat mendekripsi string yang disimpan dalam csv dengan panda

Fernet adalah perpustakaan enkripsi simetris dengan Python yang menyediakan enkripsi yang aman dan mudah digunakan untuk data sensitif. Satu kasus penggunaan umum untuk Fernet adalah mengenkripsi data sebelum menyimpannya dalam file CSV, memastikan hanya pihak yang berwenang yang dapat mengaksesnya. Namun, mendekripsi string terenkripsi ini dalam file CSV bisa sedikit rumit, terutama saat menggunakan library Pandas.

Pada artikel ini, kita akan membahas solusi untuk masalah mendekripsi string yang disimpan dalam file CSV menggunakan Fernet dan Pandas. Kami akan memberikan penjelasan kode langkah demi langkah, dan mempelajari fungsi dan pustaka yang relevan yang terlibat dalam proses tersebut.

Untuk memulainya, mari kita bahas masalahnya secara mendetail. Saat menggunakan enkripsi Fernet untuk mengamankan data sebelum menyimpannya dalam file CSV, mungkin sulit untuk mendekripsi data kembali saat menggunakan Pandas untuk membaca file. String terenkripsi memerlukan penanganan yang tepat untuk memastikan integritasnya selama dekripsi.

Solusi untuk Masalah

Solusi potensial untuk masalah ini adalah dengan menggunakan fungsi kustom dan menerapkannya ke kerangka data yang diperoleh dari file CSV. Kami akan membuat fungsi untuk mendekripsi string terenkripsi menggunakan perpustakaan Fernet, dan kemudian menerapkan fungsi ini ke kerangka data Pandas yang berisi data terenkripsi.

Berikut adalah penjelasan langkah demi langkah dari kode tersebut:

1. Pertama, kita perlu mengimpor pustaka yang diperlukan:

import pandas as pd
from cryptography.fernet import Fernet

2. Kemudian, mari buat kunci Fernet dan enkripsi beberapa data sampel. Asumsikan kami telah mengenkripsi data berikut dan menyimpannya dalam file CSV bernama "encrypted_data.csv" dengan dua kolom "data" dan "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. Sekarang, mari buat fungsi untuk mendekripsi string terenkripsi dengan kunci Fernet yang diberikan:

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. Kita bisa membaca file CSV yang berisi data terenkripsi menggunakan Pandas:

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

5. Terakhir, terapkan fungsi 'decrypt_string' ke kolom terenkripsi dari kerangka data menggunakan metode 'terapkan' dan simpan data yang didekripsi di kolom baru. Perhatikan bahwa Anda harus meneruskan kunci sebagai argumen tambahan dalam metode 'apply':

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

Perpustakaan Fernet

fernet adalah pustaka kriptografi populer di Python yang menyediakan metode yang mudah digunakan untuk mengenkripsi dan mendekripsi data dengan kriptografi kunci simetris AES. Perpustakaan menjamin bahwa data yang dienkripsi menggunakan Fernet tidak dapat dimanipulasi atau dibaca lebih lanjut tanpa kunci, memastikan kerahasiaan dan integritas data. Fernet menggunakan pengkodean URL-safe/base64 untuk ciphertext, yang membuatnya cocok untuk menyimpan data terenkripsi dalam file atau database.

Perpustakaan Panda

Panda adalah pustaka manipulasi data dan analisis data sumber terbuka dengan Python. Ini menyediakan struktur data, seperti Seri dan DataFrame, dan berbagai fungsi untuk menangani, mengubah, dan memvisualisasikan data. Panda sangat berguna untuk bekerja dengan data terstruktur atau tabular, seperti file CSV atau database SQL. Pustaka ini menyederhanakan banyak aspek manipulasi data, menjadikannya alat penting untuk analisis data dan pembelajaran mesin.

Kesimpulannya, mendekripsi string terenkripsi yang disimpan dalam file CSV menggunakan Fernet dan Panda dapat dilakukan dengan mengikuti langkah-langkah yang diberikan dalam artikel ini. Dengan membuat fungsi dekripsi khusus dan menerapkannya ke kerangka data, kami dapat secara efektif mendekripsi data sensitif yang disimpan dalam file CSV.

Pos terkait:

Tinggalkan Komentar