I-Fernet yilayibrari yoguqulelo oluyi-symmetric e-Python ebonelela ngokukhuselekileyo kwaye kulula ukuyisebenzisa ufihlo lwedatha ebuthathaka. Ukusetyenziswa okuqhelekileyo kwe-Fernet kukufihla idatha ngaphambi kokuba igcinwe kwifayile ye-CSV, ukuqinisekisa kuphela amaqela agunyazisiweyo anokufikelela kuyo. Nangona kunjalo, ukucima ezi ntambo zifihliweyo kwifayile ye-CSV kunokuba yinkohliso encinci, ngakumbi xa usebenzisa ithala leencwadi lePandas.
Kweli nqaku, siza kuxubusha isisombululo kwingxaki yokuqhawula iintambo ezigcinwe kwifayile ye-CSV usebenzisa iFernet kunye nePandas. Siza kubonelela ngenkcazo ngamanyathelo ekhowudi, kwaye sihlolisise kwimisebenzi efanelekileyo kunye namathala eencwadi abandakanyekayo kwinkqubo.
Ukuqala, makhe sixoxe ngengxaki ngokweenkcukacha. Xa usebenzisa i-encryption ye-Fernet ukukhusela idatha ngaphambi kokuyigcina kwifayile ye-CSV, kunokuba ngumngeni ukukhupha idatha emva usebenzisa i-Pandas ekufundeni ifayile. Imitya entsonkothileyo ifuna ukuphathwa ngokufanelekileyo ukuqinisekisa ingqibelelo yabo ngexesha lokuguqulelwa kwentsokolo.
Isisombululo kwiNgxaki
Isisombululo esinokubakho kule ngxaki kukusebenzisa imisebenzi yesiko kwaye uyisebenzise kwi-dataframe efunyenwe kwifayile ye-CSV. Siza kwenza umsebenzi wokususa uguqulelo oluntsonkothileyo usebenzisa ithala leencwadi leFernet, kwaye emva koko sisebenzise lo msebenzi kwi-dataframe yePandas equlethe idatha efihliweyo.
Nantsi inyathelo ngenyathelo inkcazo yekhowudi:
1. Okokuqala, kufuneka singenise amathala eencwadi ayimfuneko:
import pandas as pd from cryptography.fernet import Fernet
2. Emva koko, masenze isitshixo seFernet kwaye sifihle idatha yesampulu. Thatha ukuba sibethelele le datha ilandelayo kwaye siyigcine kwifayile ye-CSV egama lingu "encrypted_data.csv" enekholamu ezimbini "idatha" kunye "nombhalo ofihliweyo":
key = Fernet.generate_key() cipher_suite = Fernet(key) data = "This is a sample text." encrypted_data = cipher_suite.encrypt(data.encode("utf-8"))
3. Ngoku, masenze umsebenzi wokukhulula iintambo ezifihliweyo ngesitshixo esinikiweyo seFernet:
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. Sinokufunda ifayile ye-CSV equlethe idatha efihliweyo kusetyenziswa iiPandas:
csv_data = pd.read_csv('encrypted_data.csv')
5. Ekugqibeleni, sebenzisa umsebenzi we-'decrypt_string' kwikholamu efihliweyo yedatha yedatha usebenzisa indlela 'yokusebenzisa' kwaye ugcine idatha efihliweyo kwikholamu entsha. Qaphela ukuba kufuneka ugqithise isitshixo njengengxoxo eyongezelelweyo kwindlela 'yenza':
csv_data['decrypted'] = csv_data['encrypted'].apply(decrypt_string, fernet_key=key)
Fernet Library
UFernet lilayibrari ye-cryptographic edumileyo e-Python ebonelela ngeendlela ekulula ukuzisebenzisa zokuguqulela kunye nokuguqula idatha nge-AES symmetric-key cryptography. Ithala leencwadi liqinisekisa ukuba idatha eguqulelwe ngokuntsonkothileyo kusetyenziswa iFernet ayinakuguqulwa okanye ifundwe ngaphandle kwesitshixo, iqinisekisa ubumfihlo bedatha kunye nokuthembeka. I-Fernet isebenzisa i-URL-safe/base64 encoding ye-ciphertexts, eyenza ifaneleke ukugcina idatha efihliweyo kwiifayile okanye kwi-database.
Pandas Library
Iipandas lusetyenziso lwedatha oluvulelekileyo kunye nelayibrari yohlalutyo lwedatha ePython. Inika izakhiwo zedatha, ezifana neSeries kunye neDathaFrame, kunye nemisebenzi eyahlukeneyo yokuphatha, ukuguqula, kunye nokubonwa kwedatha. I-Pandas iluncedo kakhulu ekusebenzeni kunye nedatha ehleliweyo okanye yetheyibhile, efana neefayile ze-CSV okanye i-SQL yolwazi. Eli thala leencwadi lenza lula imiba emininzi yokwenziwa kwedatha, liyenza ibe sisixhobo esibalulekileyo sohlalutyo lwedatha kunye nokufunda koomatshini.
Ukuqukumbela, ukucima imitya efihliweyo egcinwe kwifayile ye-CSV usebenzisa iFernet kunye nePandas inokufezekiswa ngokulandela amanyathelo anikwe kweli nqaku. Ngokwenza umsebenzi wokuguqulela isiko kunye nokuwusebenzisa kwi-dataframe, sinokuyicima ngokufanelekileyo idatha ebuthathaka egcinwe kwifayile ye-CSV.