Kuxazululiwe: I-Fernet%3A Ayikwazi ukususa ukubhala ngezinhlamvu ezilondolozwe ku-csv ngama-panda

I-Fernet iwumtapo wezincwadi wokubethela we-symmetric e-Python ohlinzeka ngokubethela okuphephile nokusebenziseka kalula kwedatha ebucayi. Ikesi elilodwa elivamile lokusebenzisa i-Fernet ukubethela idatha ngaphambi kokuyigcina kufayela le-CSV, ukuqinisekisa ukuthi abantu abagunyaziwe kuphela abangakwazi ukuyifinyelela. Kodwa-ke, ukususa ukubethela kwalezi zinhlamvu ezibethelwe kufayela le-CSV kungaba yinto ekhohlisayo, ikakhulukazi uma usebenzisa umtapo wezincwadi we-Pandas.

Kulesi sihloko, sizoxoxa ngesixazululo senkinga yokususa ukubethela kwezintambo ezilondolozwe kufayela le-CSV kusetshenziswa i-Fernet ne-Panda. Sizohlinzeka ngencazelo yesinyathelo nesinyathelo sekhodi, futhi sijule emisebenzini efanelekile kanye nemitapo yolwazi ehilelekile kule nqubo.

Okokuqala, ake sixoxe ngenkinga ngokuningiliziwe. Uma usebenzisa ukubethela kwe-Fernet ukuze uvikele idatha ngaphambi kokuyigcina efayeleni le-CSV, kungase kube inselele ukususa ukubethela kwedatha emuva kuyilapho usebenzisa i-Pandas ekufundeni ifayela. Amayunithi ezinhlamvu abethelwe adinga ukuphathwa okufanele ukuze kuqinisekiswe ubuqotho bawo phakathi nokukhishwa kwekhodi.

Isixazululo Senkinga

Isixazululo esingaba khona sale nkinga ukusebenzisa imisebenzi yangokwezifiso futhi ukuyisebenzise kuhlaka lwedatha olutholwe kufayela le-CSV. Sizodala umsebenzi wokususa ukubethela kwezintambo ezibethelwe sisebenzisa umtapo wezincwadi we-Fernet, bese sifaka lo msebenzi kuhlaka lwedatha ye-Pandas equkethe idatha ebethelwe.

Nansi incazelo yesinyathelo ngesinyathelo yekhodi:

1. Okokuqala, sidinga ukungenisa imitapo yolwazi edingekayo:

import pandas as pd
from cryptography.fernet import Fernet

2. Ngemva kwalokho, masikhiqize ukhiye we-Fernet futhi sibethele idatha ethile yesampula. Cabanga ukuthi sibethele idatha elandelayo futhi sayilondoloza efayeleni le-CSV eliqanjwe ngokuthi “encrypted_data.csv” elinamakholomu amabili “idatha” kanye “nombhalo ofihliwe”:

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

3. Manje, masidale umsebenzi wokususa ukubethela kwezintambo ezibethelwe ngokhiye onikeziwe we-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. Singafunda ifayela le-CSV eliqukethe idatha ebethelwe sisebenzisa i-Pandas:

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

5. Okokugcina, sebenzisa umsebenzi othi 'decrypt_string' kukholamu ebethelwe yohlaka lwedatha usebenzisa indlela ethi 'sebenzisa' futhi ugcine idatha esusiwe kukholomu entsha. Qaphela ukuthi udinga ukudlulisa ukhiye njenge-agumenti eyengeziwe endleleni 'yenza':

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

I-Fernet Library

UFernet iwumtapo wezincwadi oyimfihlo odumile osePython ohlinzeka ngezindlela ezisebenziseka kalula zokubethela kanye nokususa ukubethela kwedatha nge-cryptography ye-symmetric-key ye-AES. Umtapo wezincwadi uqinisekisa ukuthi idatha ebethelwe kusetshenziswa i-Fernet ayikwazi ukushintshwa noma ifundwe ngaphandle kokhiye, okuqinisekisa ukugcinwa kuyimfihlo kwedatha nobuqotho. I-Fernet isebenzisa umbhalo wekhodi we-URL-safe/base64 kuma-ciphertexts, okuyenza ifanelekele ukugcina idatha ebethelwe kumafayela noma kusizindalwazi.

I-Pandas Library

AmaPandas iwumthombo ovulekile wokukhohlisa idatha kanye nomtapo wokuhlaziya idatha ePython. Ihlinzeka ngezakhiwo zedatha, njenge-Series ne-DataFrame, nemisebenzi ehlukahlukene yokuphatha, ukuguqula, kanye nokubona idatha ngeso lengqondo. I-Pandas iwusizo ikakhulukazi ekusebenzeni ngedatha ehlelekile noma yethebula, njengamafayela e-CSV noma izizindalwazi ze-SQL. Lo mtapo wezincwadi wenza izici eziningi zokukhohlisa kwedatha zibe lula, okuwenza ube ithuluzi elibalulekile lokuhlaziya idatha nokufunda ngomshini.

Sengiphetha, ukususa amayunithi ezinhlamvu abethelwe alondolozwe kufayela le-CSV kusetshenziswa i-Fernet ne-Pandas kungafinyelelwa ngokulandela izinyathelo ezinikezwe kulesi sihloko. Ngokwenza umsebenzi wokususa ukubethela ngokwezifiso futhi siwusebenzise kuhlaka lwedatha, singakwazi ukususa ukubhala ngokuyimfihlo idatha ebucayi egcinwe kufayela le-CSV.

Okuthunyelwe okuhlobene:

Shiya amazwana