Lahendatud: Fernet%3A Pandadega csv-sse salvestatud stringe ei saa dekrüpteerida

Fernet on Pythoni sümmeetriline krüptimisteek, mis pakub tundlike andmete turvalist ja hõlpsasti kasutatavat krüptimist. Üks levinumaid Ferneti kasutusjuhtumeid on andmete krüpteerimine enne nende CSV-faili salvestamist, tagades, et sellele pääsevad juurde ainult volitatud osapooled. Nende krüptitud stringide dekrüpteerimine CSV-failis võib aga olla veidi keeruline, eriti Pandase raamatukogu kasutamisel.

Selles artiklis käsitleme lahendust CSV-faili salvestatud stringide dekrüpteerimise probleemile, kasutades Ferneti ja Pandasid. Anname koodi samm-sammult selgituse ning süveneme protsessiga seotud asjakohastesse funktsioonidesse ja teekidesse.

Alustuseks käsitleme probleemi üksikasjalikult. Kui kasutate andmete kaitsmiseks enne nende CSV-faili salvestamist Ferneti krüptimist, võib andmete tagasi krüptimine faili lugemiseks Pandase kasutamise ajal olla keeruline. Krüptitud stringe tuleb dekrüpteerimise ajal korralikult käsitleda, et tagada nende terviklikkus.

Probleemi lahendus

Selle probleemi võimalik lahendus on kohandatud funktsioonide kasutamine ja nende rakendamine CSV-failist saadud andmeraamile. Loome funktsiooni krüptitud stringide dekrüpteerimiseks Ferneti teegi abil ja seejärel rakendame selle funktsiooni krüptitud andmeid sisaldavale Pandase andmeraamile.

Siin on koodi samm-sammult selgitus:

1. Esiteks peame importima vajalikud teegid:

import pandas as pd
from cryptography.fernet import Fernet

2. Seejärel genereerime Ferneti võtme ja krüpteerime mõned näidisandmed. Oletame, et oleme krüpteerinud järgmised andmed ja salvestanud need CSV-faili nimega „encrypted_data.csv”, milles on kaks veergu „data” ja „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. Nüüd loome funktsiooni krüptitud stringide dekrüpteerimiseks antud Ferneti võtmega:

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. Pandade abil saame lugeda krüpteeritud andmeid sisaldavat CSV-faili:

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

5. Lõpuks rakendage andmeraami krüptitud veerule funktsioon "decrypt_string", kasutades meetodit "rakendamine" ja salvestage dekrüpteeritud andmed uude veergu. Pange tähele, et peate rakendama meetodis võtme lisaargumendina:

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

Ferneti raamatukogu

fernet on Pythonis populaarne krüptograafiline raamatukogu, mis pakub hõlpsasti kasutatavaid meetodeid andmete krüptimiseks ja dekrüpteerimiseks AES sümmeetrilise võtmega krüptograafiaga. Teek garanteerib, et Ferneti abil krüpteeritud andmeid ei saa ilma võtmeta edasi töödelda ega lugeda, tagades andmete konfidentsiaalsuse ja terviklikkuse. Fernet kasutab šifritekstide jaoks URL-safe/base64 kodeeringut, mis muudab selle sobivaks krüpteeritud andmete salvestamiseks failidesse või andmebaasidesse.

Panda raamatukogu

Pandad on Pythonis avatud lähtekoodiga andmetega manipuleerimise ja andmeanalüüsi teek. See pakub andmestruktuure, nagu Series ja DataFrame, ning erinevaid funktsioone andmete käsitlemiseks, teisendamiseks ja visualiseerimiseks. Pandad on eriti kasulikud struktureeritud või tabeliandmetega, näiteks CSV-failide või SQL-andmebaasidega töötamiseks. See raamatukogu lihtsustab andmetega manipuleerimise paljusid aspekte, muutes selle andmeanalüüsi ja masinõppe jaoks oluliseks tööriistaks.

Kokkuvõtteks võib öelda, et CSV-faili salvestatud krüptitud stringide dekrüpteerimiseks Ferneti ja Pandade abil saab käesolevas artiklis kirjeldatud samme järgida. Luues kohandatud dekrüpteerimisfunktsiooni ja rakendades seda andmeraamile, saame tõhusalt dekrüpteerida CSV-faili salvestatud tundlikke andmeid.

Seonduvad postitused:

Jäta kommentaar