Atrisināts: Fernet%3A Nevar atšifrēt virknes, kas saglabātas csv, izmantojot pandas

Fernet ir Python simetriska šifrēšanas bibliotēka, kas nodrošina drošu un viegli lietojamu sensitīvu datu šifrēšanu. Viens no izplatītākajiem Fernet lietošanas gadījumiem ir datu šifrēšana pirms to saglabāšanas CSV failā, nodrošinot tiem piekļuvi tikai pilnvarotām pusēm. Tomēr šo šifrēto virkņu atšifrēšana CSV failā var būt nedaudz sarežģīta, it īpaši, ja izmantojat Pandas bibliotēku.

Šajā rakstā mēs apspriedīsim CSV failā saglabāto virkņu atšifrēšanas problēmas risinājumu, izmantojot Fernet un Pandas. Mēs sniegsim soli pa solim koda skaidrojumu un iedziļināsimies attiecīgajā procesā iesaistītajās funkcijās un bibliotēkās.

Lai sāktu, sīkāk apspriedīsim problēmu. Izmantojot Fernet šifrēšanu, lai aizsargātu datus pirms to saglabāšanas CSV failā, var būt sarežģīti atšifrēt datus atpakaļ, kamēr faila lasīšanai izmantojat Pandas. Šifrētās virknes ir pareizi jāapstrādā, lai nodrošinātu to integritāti atšifrēšanas laikā.

Problēmas risinājums

Potenciāls šīs problēmas risinājums ir izmantot pielāgotas funkcijas un lietot tās datu rāmim, kas iegūts no CSV faila. Mēs izveidosim funkciju šifrēto virkņu atšifrēšanai, izmantojot Fernet bibliotēku, un pēc tam lietosim šo funkciju Pandas datu kadram, kurā ir šifrētie dati.

Šeit ir sniegts soli pa solim koda skaidrojums:

1. Pirmkārt, mums ir jāimportē nepieciešamās bibliotēkas:

import pandas as pd
from cryptography.fernet import Fernet

2. Pēc tam ģenerēsim Fernet atslēgu un šifrēsim dažus datu paraugus. Pieņemsim, ka esam šifrējuši tālāk norādītos datus un saglabājuši tos CSV failā ar nosaukumu “encrypted_data.csv” ar divām kolonnām “data” un “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. Tagad izveidosim funkciju šifrēto virkņu atšifrēšanai ar doto Fernet atslēgu:

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. Mēs varam nolasīt CSV failu, kurā ir šifrēti dati, izmantojot Pandas:

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

5. Visbeidzot, lietojiet funkciju “decrypt_string” datu rāmja šifrētajai kolonnai, izmantojot metodi “piemērot”, un saglabājiet atšifrētos datus jaunā kolonnā. Ņemiet vērā, ka jums ir jānodod atslēga kā papildu arguments 'piemērot' metodē:

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

Ferneta bibliotēka

Fernets ir populāra Python kriptogrāfijas bibliotēka, kas nodrošina viegli lietojamas metodes datu šifrēšanai un atšifrēšanai ar AES simetriskās atslēgas kriptogrāfiju. Bibliotēka garantē, ka ar Fernet šifrētos datus nevar tālāk manipulēt vai nolasīt bez atslēgas, nodrošinot datu konfidencialitāti un integritāti. Fernet šifrētiem tekstiem izmanto URL-safe/base64 kodējumu, kas padara to piemērotu šifrētu datu glabāšanai failos vai datu bāzēs.

Pandas bibliotēka

Pandas ir atvērtā koda datu manipulācijas un datu analīzes bibliotēka Python. Tas nodrošina datu struktūras, piemēram, Series un DataFrame, kā arī dažādas funkcijas datu apstrādei, pārveidošanai un vizualizēšanai. Pandas ir īpaši noderīgas darbam ar strukturētiem vai tabulas datiem, piemēram, CSV failiem vai SQL datu bāzēm. Šī bibliotēka vienkāršo daudzus datu apstrādes aspektus, padarot to par būtisku rīku datu analīzei un mašīnmācībai.

Visbeidzot, CSV failā saglabāto šifrēto virkņu atšifrēšanu, izmantojot Fernet un Pandas, var veikt, veicot šajā rakstā norādītās darbības. Izveidojot pielāgotu atšifrēšanas funkciju un piemērojot to datu rāmim, mēs varam efektīvi atšifrēt CSV failā saglabātos sensitīvos datus.

Related posts:

Leave a Comment