Решено: Фернет%3А Не може да дешифрује стрингове сачуване у цсв-у са пандама

Фернет је библиотека за симетрично шифровање у Питхон-у која обезбеђује безбедно и једноставну шифровање за осетљиве податке. Један уобичајени случај употребе Фернета је да шифрује податке пре него што их ускладишти у ЦСВ датотеку, обезбеђујући да им само овлашћене стране могу приступити. Међутим, дешифровање ових шифрованих стрингова у ЦСВ датотеци може бити мало незгодно, посебно када користите Пандас библиотеку.

У овом чланку ћемо разговарати о решењу проблема дешифровања стрингова сачуваних у ЦСВ датотеци помоћу Фернета и Панда. Пружићемо објашњење кода корак по корак и ући у релевантне функције и библиотеке укључене у процес.

За почетак, хајде да детаљно размотримо проблем. Када користите Фернет шифровање да бисте обезбедили податке пре него што их сачувате у ЦСВ датотеци, можда ће бити изазовно дешифровати податке назад док користите Пандас за читање датотеке. Шифровани низови захтевају правилно руковање како би се обезбедио њихов интегритет током дешифровања.

Решење проблема

Потенцијално решење овог проблема је коришћење прилагођених функција и њихова примена на оквир података добијен из ЦСВ датотеке. Направићемо функцију за дешифровање шифрованих стрингова користећи Фернет библиотеку, а затим применити ову функцију на Пандас оквир података који садржи шифроване податке.

Ево корак по корак објашњења кода:

1. Прво, морамо да увеземо потребне библиотеке:

import pandas as pd
from cryptography.fernet import Fernet

2. Затим, хајде да генеришемо Фернет кључ и шифрујемо неке узорке података. Претпоставимо да смо шифровали следеће податке и сачували их у ЦСВ датотеци под називом „енцриптед_дата.цсв“ са две колоне „подаци“ и „шифровани“:

key = Fernet.generate_key()
cipher_suite = Fernet(key)
data = "This is a sample text."
encrypted_data = cipher_suite.encrypt(data.encode("utf-8"))

3. Сада, хајде да направимо функцију за дешифровање шифрованих стрингова са датим Фернет кључем:

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_data = pd.read_csv('encrypted_data.csv')

5. На крају, примените функцију 'децрипт_стринг' на шифровану колону оквира података користећи метод 'аппли' и дешифроване податке сачувајте у новој колони. Имајте на уму да морате да проследите кључ као додатни аргумент у методи 'аппли':

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

Фернет библиотека

Фернет је популарна криптографска библиотека у Питхон-у која пружа методе једноставне за коришћење за шифровање и дешифровање података помоћу АЕС криптографије са симетричним кључем. Библиотека гарантује да се подацима шифрованим помоћу Фернета не може даље манипулисати или читати без кључа, чиме се обезбеђује поверљивост и интегритет података. Фернет користи УРЛ-сафе/басе64 кодирање за шифроване текстове, што га чини погодним за чување шифрованих података у датотекама или базама података.

Пандас Либрари

панде је библиотека отвореног кода за манипулацију подацима и анализу података у Питхон-у. Обезбеђује структуре података, као што су серије и оквир података, и различите функције за руковање, трансформацију и визуелизацију података. Пандас је посебно користан за рад са структурираним или табеларним подацима, као што су ЦСВ датотеке или СКЛ базе података. Ова библиотека поједностављује многе аспекте манипулације подацима, чинећи је основним алатом за анализу података и машинско учење.

У закључку, дешифровање шифрованих стрингова сачуваних у ЦСВ датотеци помоћу Фернета и Пандас може се постићи пратећи кораке наведене у овом чланку. Креирањем прилагођене функције дешифровања и њеном применом на оквир података, можемо ефикасно дешифровати осетљиве податке ускладиштене у ЦСВ датотеци.

Релатед постс:

Оставите коментар