Nalutas: Fernet%3A Hindi ma-decrypt ang mga string na naka-save sa csv na may mga pandas

Ang Fernet ay isang symmetric encryption library sa Python na nagbibigay ng secure at madaling gamitin na encryption para sa sensitibong data. Ang isang karaniwang kaso ng paggamit para sa Fernet ay ang pag-encrypt ng data bago ito iimbak sa isang CSV file, na tinitiyak na ang mga awtorisadong partido lamang ang makaka-access nito. Gayunpaman, ang pag-decrypt ng mga naka-encrypt na string na ito sa isang CSV file ay maaaring medyo nakakalito, lalo na kapag gumagamit ng Pandas library.

Sa artikulong ito, tatalakayin natin ang solusyon sa problema ng pag-decryption ng mga string na naka-save sa isang CSV file gamit ang Fernet at Pandas. Magbibigay kami ng sunud-sunod na paliwanag ng code, at susuriin namin ang mga nauugnay na function at library na kasangkot sa proseso.

Upang magsimula, talakayin natin ang problema nang detalyado. Kapag gumagamit ng Fernet encryption upang ma-secure ang data bago ito i-store sa isang CSV file, maaaring mahirap i-decrypt ang data pabalik habang ginagamit ang Pandas para sa pagbabasa ng file. Ang mga naka-encrypt na string ay nangangailangan ng wastong paghawak upang matiyak ang kanilang integridad sa panahon ng pag-decryption.

Solusyon sa problema

Ang isang potensyal na solusyon sa problemang ito ay ang paggamit ng mga custom na function at ilapat ang mga ito sa dataframe na nakuha mula sa CSV file. Gagawa kami ng function para i-decrypt ang mga naka-encrypt na string gamit ang Fernet library, at pagkatapos ay ilapat ang function na ito sa Pandas dataframe na naglalaman ng naka-encrypt na data.

Narito ang isang hakbang-hakbang na paliwanag ng code:

1. Una, kailangan nating i-import ang mga kinakailangang aklatan:

import pandas as pd
from cryptography.fernet import Fernet

2. Pagkatapos, bumuo tayo ng Fernet key at i-encrypt ang ilang sample na data. Ipagpalagay na na-encrypt namin ang sumusunod na data at na-save ito sa isang CSV file na pinangalanang "encrypted_data.csv" na may dalawang column na "data" at "naka-encrypt":

key = Fernet.generate_key()
cipher_suite = Fernet(key)
data = "This is a sample text."
encrypted_data = cipher_suite.encrypt(data.encode("utf-8"))

3. Ngayon, gumawa tayo ng function para i-decrypt ang mga naka-encrypt na string gamit ang ibinigay na Fernet key:

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. Mababasa natin ang CSV file na naglalaman ng naka-encrypt na data gamit ang Pandas:

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

5. Panghuli, ilapat ang 'decrypt_string' function sa naka-encrypt na column ng dataframe gamit ang 'apply' na paraan at iimbak ang na-decrypt na data sa isang bagong column. Tandaan na kailangan mong ipasa ang susi bilang karagdagang argumento sa pamamaraang 'mag-apply':

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

Fernet Library

fernet ay isang sikat na cryptographic library sa Python na nagbibigay ng madaling gamitin na mga paraan para sa pag-encrypt at pag-decrypt ng data gamit ang AES symmetric-key cryptography. Ginagarantiyahan ng library na ang data na naka-encrypt gamit ang Fernet ay hindi na maaaring manipulahin o basahin nang walang susi, na tinitiyak ang pagiging kumpidensyal at integridad ng data. Gumagamit ang Fernet ng URL-safe/base64 encoding para sa mga ciphertext, na ginagawang angkop para sa pag-imbak ng naka-encrypt na data sa mga file o database.

Pandas Library

Pandas ay isang open-source data manipulation at data analysis library sa Python. Nagbibigay ito ng mga istruktura ng data, tulad ng Series at DataFrame, at iba't ibang mga function para sa paghawak, pagbabago, at pag-visualize ng data. Ang mga Panda ay partikular na kapaki-pakinabang para sa pagtatrabaho sa structured o tabular na data, tulad ng mga CSV file o SQL database. Pinapasimple ng library na ito ang maraming aspeto ng pagmamanipula ng data, ginagawa itong mahalagang tool para sa pagsusuri ng data at machine learning.

Sa konklusyon, ang pag-decryption ng mga naka-encrypt na string na naka-save sa isang CSV file gamit ang Fernet at Pandas ay maaaring makamit sa pamamagitan ng pagsunod sa mga hakbang na ibinigay sa artikulong ito. Sa pamamagitan ng paggawa ng custom na pag-decryption function at paglalapat nito sa dataframe, mabisa naming ma-decrypt ang sensitibong data na nakaimbak sa CSV file.

Kaugnay na mga post:

Mag-iwan ng komento