Išspręsta: Fernet%3A Nepavyko iššifruoti eilučių, išsaugotų csv su pandomis

„Fernet“ yra simetriška „Python“ šifravimo biblioteka, užtikrinanti saugų ir lengvai naudojamą jautrių duomenų šifravimą. Vienas dažnas „Fernet“ naudojimo atvejis yra užšifruoti duomenis prieš išsaugant juos CSV faile, užtikrinant, kad tik įgaliotosios šalys galėtų juos pasiekti. Tačiau iššifruoti šias užšifruotas eilutes CSV faile gali būti šiek tiek sudėtinga, ypač naudojant Pandas biblioteką.

Šiame straipsnyje aptarsime CSV faile išsaugotų eilučių iššifravimo naudojant Fernet ir Pandas problemos sprendimą. Mes pateiksime nuoseklų kodo paaiškinimą ir įsigilinsime į atitinkamas funkcijas ir bibliotekas, dalyvaujančias procese.

Norėdami pradėti, išsamiai aptarkime problemą. Kai naudojate „Fernet“ šifravimą duomenims apsaugoti prieš išsaugant juos CSV faile, gali būti sudėtinga iššifruoti duomenis atgal, kai failas nuskaitomas naudojant Pandas. Užšifruotas eilutes reikia tinkamai tvarkyti, kad būtų užtikrintas jų vientisumas iššifruojant.

Problemos sprendimas

Galimas šios problemos sprendimas yra naudoti pasirinktines funkcijas ir pritaikyti jas duomenų rėmelyje, gautame iš CSV failo. Mes sukursime funkciją iššifruoti užšifruotas eilutes naudodami Fernet biblioteką, o tada pritaikysime šią funkciją Pandas duomenų rėmui, kuriame yra užšifruoti duomenys.

Štai žingsnis po žingsnio kodo paaiškinimas:

1. Pirmiausia turime importuoti reikiamas bibliotekas:

import pandas as pd
from cryptography.fernet import Fernet

2. Tada sugeneruokime Fernet raktą ir užšifruokime kai kuriuos pavyzdinius duomenis. Tarkime, kad užšifravome šiuos duomenis ir išsaugojome juos CSV faile pavadinimu „encrypted_data.csv“ su dviem stulpeliais „data“ ir „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. Dabar sukurkime funkciją iššifruoti užšifruotas eilutes su nurodytu Fernet raktu:

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. CSV failą, kuriame yra užšifruoti duomenys, galime nuskaityti naudodami Pandas:

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

5. Galiausiai pritaikykite funkciją „decrypt_string“ užšifruotam duomenų rėmelio stulpeliui naudodami „apply“ metodą ir iššifruotus duomenis išsaugokite naujame stulpelyje. Atminkite, kad raktą turite perduoti kaip papildomą argumentą „taikyti“ metodu:

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

Ferneto biblioteka

„Fernet“ yra populiari Python kriptografinė biblioteka, teikianti lengvai naudojamus duomenų šifravimo ir iššifravimo metodus naudojant AES simetrinio rakto kriptografiją. Biblioteka garantuoja, kad naudojant „Fernet“ užšifruotų duomenų negalima toliau manipuliuoti ar nuskaityti be rakto, užtikrinant duomenų konfidencialumą ir vientisumą. „Fernet“ naudoja URL-safe/base64 kodavimą šifruotiems tekstams, todėl jis tinkamas šifruotiems duomenims saugoti failuose ar duomenų bazėse.

Pandų biblioteka

Pandas yra atvirojo kodo duomenų apdorojimo ir duomenų analizės biblioteka Python. Jame pateikiamos duomenų struktūros, pvz., Series ir DataFrame, ir įvairios duomenų tvarkymo, transformavimo ir vizualizavimo funkcijos. Pandos ypač naudingos dirbant su struktūriniais arba lentelių duomenimis, pvz., CSV failais arba SQL duomenų bazėmis. Ši biblioteka supaprastina daugelį duomenų apdorojimo aspektų, todėl ji yra esminė duomenų analizės ir mašininio mokymosi priemonė.

Apibendrinant galima pasakyti, kad CSV faile išsaugotas šifruotas eilutes naudojant Fernet ir Pandas galima iššifruoti atlikus šiame straipsnyje nurodytus veiksmus. Sukūrę pasirinktinę iššifravimo funkciją ir pritaikę ją duomenų rėmelyje, galime efektyviai iššifruoti slaptus duomenis, saugomus CSV faile.

Susijusios naujienos:

Palikite komentarą