Megoldva: Fernet%3A Nem lehet visszafejteni a csv-ben elmentett karakterláncokat pandákkal

A Fernet egy Python szimmetrikus titkosítási könyvtár, amely biztonságos és könnyen használható titkosítást biztosít az érzékeny adatok számára. A Fernet egyik gyakori felhasználási esete az adatok titkosítása, mielőtt CSV-fájlban tárolná azokat, így biztosítva, hogy csak az arra jogosult felek férhessenek hozzá. Azonban ezeknek a titkosított karakterláncoknak a visszafejtése egy CSV-fájlban kissé bonyolult lehet, különösen a Pandas könyvtár használatakor.

Ebben a cikkben a CSV-fájlba mentett karakterláncok Fernet és Pandas segítségével történő visszafejtésének problémájára vonatkozó megoldást tárgyaljuk. Lépésről lépésre magyarázatot adunk a kódról, és elmélyülünk a folyamatban részt vevő releváns funkciókban és könyvtárakban.

Kezdésként beszéljük meg részletesen a problémát. Ha Fernet-titkosítást használ az adatok védelmére, mielőtt CSV-fájlban tárolná azokat, nehéz lehet az adatok visszafejtése, miközben a fájlt a Pandas segítségével olvassa el. A titkosított karakterláncok megfelelő kezelést igényelnek, hogy biztosítsák integritásukat a visszafejtés során.

Megoldás a problémára

A probléma lehetséges megoldása az egyéni függvények használata, és ezek alkalmazása a CSV-fájlból nyert adatkeretre. Létrehozunk egy függvényt a titkosított karakterláncok visszafejtésére a Fernet könyvtár segítségével, majd ezt a függvényt alkalmazzuk a titkosított adatokat tartalmazó Pandas adatkeretre.

Íme a kód lépésről lépésre történő magyarázata:

1. Először is importálnunk kell a szükséges könyvtárakat:

import pandas as pd
from cryptography.fernet import Fernet

2. Ezután hozzunk létre egy Fernet kulcsot, és titkosítsunk néhány mintaadatot. Tegyük fel, hogy a következő adatokat titkosítottuk, és egy „encrypted_data.csv” nevű CSV-fájlba mentettük, két oszloppal: „data” és „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. Most hozzunk létre egy függvényt a titkosított karakterláncok visszafejtésére az adott Fernet kulccsal:

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. A titkosított adatokat tartalmazó CSV-fájlt a Pandas segítségével olvashatjuk:

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

5. Végül alkalmazza a 'decrypt_string' függvényt az adatkeret titkosított oszlopára az 'apply' módszerrel, és tárolja a visszafejtett adatokat egy új oszlopban. Vegye figyelembe, hogy a kulcsot további argumentumként kell átadnia az „alkalmaz” metódusban:

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

Fernet Könyvtár

fernet egy népszerű kriptográfiai könyvtár a Pythonban, amely könnyen használható módszereket biztosít az adatok titkosításához és visszafejtéséhez AES szimmetrikus kulcsú titkosítással. A könyvtár garantálja, hogy a Fernet segítségével titkosított adatok a kulcs nélkül ne legyenek tovább manipulálhatók vagy olvashatók, biztosítva az adatok bizalmasságát és integritását. A Fernet URL-safe/base64 kódolást használ a titkosított szövegekhez, ami alkalmassá teszi titkosított adatok fájlokban vagy adatbázisokban való tárolására.

Pandas Könyvtár

pandák egy nyílt forráskódú adatkezelési és adatelemző könyvtár Pythonban. Olyan adatstruktúrákat biztosít, mint a Series és DataFrame, valamint különféle funkciókat az adatok kezelésére, átalakítására és megjelenítésére. A Pandas különösen hasznos strukturált vagy táblázatos adatokkal, például CSV-fájlokkal vagy SQL-adatbázisokkal való munkához. Ez a könyvtár leegyszerűsíti az adatkezelés számos aspektusát, így az adatelemzés és a gépi tanulás alapvető eszközévé válik.

Összefoglalva, a CSV-fájlba mentett titkosított karakterláncok Fernet és Pandas használatával visszafejthetők az ebben a cikkben ismertetett lépések követésével. Egyedi visszafejtési funkció létrehozásával és az adatkeretre történő alkalmazásával hatékonyan tudjuk visszafejteni a CSV fájlban tárolt érzékeny adatokat.

Kapcsolódó hozzászólások:

Írj hozzászólást