Isonjululwe: I-Fernet% 3A Ayinakuyicima imitya egcinwe kwi-csv ngeepanda

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.

Izithuba ezihambelanayo:

Shiya Comment