Fernet hija librerija ta' encryption simmetrika f'Python li tipprovdi encryption sigura u faċli biex tużah għal data sensittiva. Każ ta' użu komuni għal Fernet huwa li d-data tiġi kkriptata qabel ma tinħażen f'fajl CSV, u tiżgura li l-partijiet awtorizzati biss ikunu jistgħu jaċċessawha. Madankollu, id-deċifrar ta 'dawn il-kordi kriptati f'fajl CSV jista' jkun ftit diffiċli, speċjalment meta tuża l-librerija Pandas.
F'dan l-artikolu, ser niddiskutu soluzzjoni għall-problema tad-deċifrar ta 'kordi salvati f'fajl CSV bl-użu ta' Fernet u Pandas. Aħna ser nipprovdu spjegazzjoni pass pass tal-kodiċi, u nidħlu fil-funzjonijiet u l-libreriji rilevanti involuti fil-proċess.
Biex tibda, ejja niddiskutu l-problema fid-dettall. Meta tuża l-encryption Fernet biex tiżgura d-dejta qabel ma taħżenha f'fajl CSV, jista 'jkun diffiċli li d-dejta tiġi dekriptata lura waqt li tuża Pandas biex taqra l-fajl. Il-kordi kriptati jeħtieġu tqandil xieraq biex jiżguraw l-integrità tagħhom waqt id-deċifrar.
Soluzzjoni għall-Problema
Soluzzjoni potenzjali għal din il-problema hija li tuża funzjonijiet tad-dwana u tapplikahom għad-dataframe miksuba mill-fajl CSV. Aħna se noħolqu funzjoni biex tiddeċifra l-kordi kriptati billi tuża l-librerija Fernet, u mbagħad napplikaw din il-funzjoni għad-dataframe Pandas li fih id-dejta kriptata.
Hawnhekk hawn spjegazzjoni pass pass tal-kodiċi:
1. L-ewwel, għandna bżonn li timporta l-libreriji meħtieġa:
import pandas as pd from cryptography.fernet import Fernet
2. Imbagħad, ejja niġġenera ċavetta Fernet u kriptaġġ xi kampjun tad-dejta. Assumi li kkodifikajna d-dejta li ġejja u ssejvjajna f’fajl CSV bl-isem “encrypted_data.csv” b’żewġ kolonni “data” u “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. Issa, ejja noħolqu funzjoni biex tiddikripta l-kordi kriptati biċ-ċavetta Fernet mogħtija:
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. Nistgħu naqraw il-fajl CSV li fih dejta kriptata billi tuża Pandas:
csv_data = pd.read_csv('encrypted_data.csv')
5. Fl-aħħarnett, applika l-funzjoni 'decrypt_string' għall-kolonna encrypted tad-dataframe billi tuża l-metodu 'apply' u aħżen id-data decrypted f'kolonna ġdida. Innota li trid tgħaddi ċ-ċavetta bħala argument addizzjonali fil-metodu 'applika':
csv_data['decrypted'] = csv_data['encrypted'].apply(decrypt_string, fernet_key=key)
Librerija Fernet
fernet hija librerija kriptografika popolari f'Python li tipprovdi metodi faċli biex jintużaw għall-kriptaġġ u d-deċifrar tad-dejta bil-kriptografija b'ċavetta simetrika AES. Il-librerija tiggarantixxi li d-dejta kriptata bl-użu ta 'Fernet ma tistax tiġi manipulata jew tinqara aktar mingħajr iċ-ċavetta, u tiżgura l-kunfidenzjalità u l-integrità tad-dejta. Fernet juża kodifikazzjoni URL-safe/base64 għal ciphertexts, li jagħmilha adattata għall-ħażna ta 'dejta encrypted f'fajls jew databases.
Librerija Pandas
pandas hija librerija ta' manipulazzjoni tad-dejta u analiżi tad-dejta open-source f'Python. Jipprovdi strutturi tad-dejta, bħal Serje u DataFrame, u diversi funzjonijiet għall-immaniġġjar, it-trasformazzjoni u l-viżwalizzazzjoni tad-dejta. Pandas huwa partikolarment utli biex taħdem b'dejta strutturata jew tabulari, bħal fajls CSV jew databases SQL. Din il-librerija tissimplifika ħafna aspetti tal-manipulazzjoni tad-dejta, u tagħmilha għodda essenzjali għall-analiżi tad-dejta u t-tagħlim tal-magni.
Bħala konklużjoni, id-deċifrar ta 'kordi kriptati ffrankati f'fajl CSV bl-użu ta' Fernet u Pandas jista 'jinkiseb billi ssegwi l-passi pprovduti f'dan l-artikolu. Billi noħolqu funzjoni ta 'deċifrar tad-dwana u napplikawha għad-dataframe, nistgħu niddeċifraw b'mod effettiv id-dejta sensittiva maħżuna fil-fajl CSV.