Ratkaistu: Fernet%3A CSV-tiedostoon tallennettujen merkkijonojen salausta ei voi purkaa pandoilla

Fernet on Pythonin symmetrinen salauskirjasto, joka tarjoaa turvallisen ja helppokäyttöisen salauksen arkaluontoisille tiedoille. Eräs yleinen Fernetin käyttötapa on salata tiedot ennen niiden tallentamista CSV-tiedostoon, jotta vain valtuutetut osapuolet voivat käyttää niitä. Näiden salattujen merkkijonojen salauksen purkaminen CSV-tiedostossa voi kuitenkin olla hieman hankalaa, etenkin Pandas-kirjastoa käytettäessä.

Tässä artikkelissa käsittelemme ratkaisua CSV-tiedostoon tallennettujen merkkijonojen salauksen purkamiseen Fernetillä ja Pandasilla. Annamme vaiheittaisen selityksen koodista ja perehdymme prosessiin liittyviin toimintoihin ja kirjastoihin.

Aluksi keskustellaan ongelmasta yksityiskohtaisesti. Kun käytät Fernet-salausta tietojen suojaamiseen ennen niiden tallentamista CSV-tiedostoon, tietojen salauksen purkaminen voi olla haastavaa, kun käytät Pandasta tiedoston lukemiseen. Salatut merkkijonot vaativat asianmukaista käsittelyä niiden eheyden varmistamiseksi salauksen purkamisen aikana.

Ratkaisu Ongelmaan

Mahdollinen ratkaisu tähän ongelmaan on käyttää mukautettuja toimintoja ja soveltaa niitä CSV-tiedostosta saatuun tietokehykseen. Luomme funktion salattujen merkkijonojen salauksen purkamiseksi Fernet-kirjaston avulla ja käytämme tätä toimintoa Pandas-tietokehykseen, joka sisältää salatun tiedon.

Tässä on vaiheittainen selitys koodista:

1. Ensin meidän on tuotava tarvittavat kirjastot:

import pandas as pd
from cryptography.fernet import Fernet

2. Luodaan sitten Fernet-avain ja salataan näytetietoja. Oletetaan, että olemme salaaneet seuraavat tiedot ja tallentaneet ne CSV-tiedostoon nimeltä "encrypted_data.csv", jossa on kaksi saraketta "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. Luodaan nyt funktio salattujen merkkijonojen salauksen purkamiseksi annetulla Fernet-avaimella:

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. Voimme lukea salattua tietoa sisältävän CSV-tiedoston Pandasin avulla:

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

5. Käytä lopuksi 'decrypt_string'-funktiota tietokehyksen salattuun sarakkeeseen käyttämällä apply-menetelmää ja tallenna salatut tiedot uuteen sarakkeeseen. Huomaa, että sinun on välitettävä avain lisäargumenttina "apply"-menetelmässä:

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

Fernet kirjasto

Fernet on Pythonin suosittu kryptografinen kirjasto, joka tarjoaa helppokäyttöisiä menetelmiä tietojen salaamiseen ja salauksen purkamiseen AES-symmetrisellä avaimella. Kirjasto takaa, että Fernetillä salattua tietoa ei voida enää käsitellä tai lukea ilman avainta, mikä varmistaa tietojen luottamuksellisuuden ja eheyden. Fernet käyttää URL-safe/base64-koodausta salateksteissä, mikä tekee siitä sopivan salatun tiedon tallentamiseen tiedostoihin tai tietokantoihin.

Pandan kirjasto

Panda on avoimen lähdekoodin tietojenkäsittely- ja data-analyysikirjasto Pythonissa. Se tarjoaa tietorakenteita, kuten Series ja DataFrame, sekä erilaisia ​​toimintoja tietojen käsittelyyn, muuntamiseen ja visualisointiin. Pandat ovat erityisen hyödyllisiä työskennellessäsi jäsenneltyjen tai taulukkomuotoisten tietojen, kuten CSV-tiedostojen tai SQL-tietokantojen, kanssa. Tämä kirjasto yksinkertaistaa monia tietojen käsittelyn näkökohtia ja tekee siitä olennaisen työkalun tietojen analysointiin ja koneoppimiseen.

Yhteenvetona voidaan todeta, että CSV-tiedostoon tallennettujen salattujen merkkijonojen salauksen purkaminen Fernetillä ja Pandasilla voidaan suorittaa noudattamalla tässä artikkelissa annettuja ohjeita. Luomalla mukautetun salauksen purkutoiminnon ja soveltamalla sitä tietokehykseen voimme tehokkaasti purkaa CSV-tiedostoon tallennettujen arkaluonteisten tietojen salauksen.

Related viestiä:

Jätä kommentti