हल किया गया: फ़र्नेट% 3A पांडा के साथ csv में सहेजी गई स्ट्रिंग्स को डिक्रिप्ट नहीं कर सकता

फर्नेट पायथन में एक सममित एन्क्रिप्शन लाइब्रेरी है जो संवेदनशील डेटा के लिए सुरक्षित और उपयोग में आसान एन्क्रिप्शन प्रदान करता है। फ़र्नेट के लिए एक सामान्य उपयोग-मामला CSV फ़ाइल में संग्रहीत करने से पहले डेटा को एन्क्रिप्ट करना है, यह सुनिश्चित करना कि केवल अधिकृत पक्ष ही इसे एक्सेस कर सकते हैं। हालाँकि, CSV फ़ाइल में इन एन्क्रिप्टेड स्ट्रिंग्स को डिक्रिप्ट करना थोड़ा मुश्किल हो सकता है, खासकर जब पांडा लाइब्रेरी का उपयोग कर रहे हों।

इस लेख में, हम फ़र्नेट और पंडों का उपयोग करके CSV फ़ाइल में सहेजी गई स्ट्रिंग्स को डिक्रिप्ट करने की समस्या के समाधान पर चर्चा करेंगे। हम कोड की चरण-दर-चरण व्याख्या प्रदान करेंगे, और प्रक्रिया में शामिल प्रासंगिक कार्यों और पुस्तकालयों में तल्लीन करेंगे।

आरंभ करने के लिए, आइए समस्या पर विस्तार से चर्चा करें। CSV फ़ाइल में संग्रहीत करने से पहले डेटा को सुरक्षित करने के लिए फ़र्नेट एन्क्रिप्शन का उपयोग करते समय, फ़ाइल को पढ़ने के लिए पांडा का उपयोग करते समय डेटा को वापस डिक्रिप्ट करना चुनौतीपूर्ण हो सकता है। डिक्रिप्शन के दौरान उनकी अखंडता सुनिश्चित करने के लिए एन्क्रिप्टेड स्ट्रिंग्स को उचित हैंडलिंग की आवश्यकता होती है।

समस्या का समाधान

इस समस्या का एक संभावित समाधान कस्टम फ़ंक्शंस का उपयोग करना और उन्हें CSV फ़ाइल से प्राप्त डेटाफ़्रेम पर लागू करना है। हम फ़र्नेट लाइब्रेरी का उपयोग करके एन्क्रिप्टेड स्ट्रिंग्स को डिक्रिप्ट करने के लिए एक फ़ंक्शन बनाएंगे, और फिर इस फ़ंक्शन को एन्क्रिप्टेड डेटा वाले पंडों के डेटाफ़्रेम पर लागू करेंगे।

यहाँ कोड की चरण-दर-चरण व्याख्या है:

1. सबसे पहले, हमें आवश्यक पुस्तकालयों को आयात करने की आवश्यकता है:

import pandas as pd
from cryptography.fernet import Fernet

2. फिर, एक फर्नेट कुंजी उत्पन्न करते हैं और कुछ नमूना डेटा को एन्क्रिप्ट करते हैं। मान लें कि हमने निम्नलिखित डेटा को एन्क्रिप्ट किया है और इसे दो कॉलम "डेटा" और "एन्क्रिप्टेड" के साथ "encrypted_data.csv" नामक CSV फ़ाइल में सहेजा है:

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 फ़ाइल पढ़ सकते हैं:

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

5. अंत में, 'लागू करें' विधि का उपयोग करके डेटाफ्रेम के एन्क्रिप्टेड कॉलम में 'डिक्रिप्ट_स्ट्रिंग' फ़ंक्शन लागू करें और डिक्रिप्ट किए गए डेटा को एक नए कॉलम में स्टोर करें। ध्यान दें कि आपको 'लागू करें' विधि में कुंजी को एक अतिरिक्त तर्क के रूप में पारित करने की आवश्यकता है:

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

फ़र्नेट लाइब्रेरी

फर्नेट पायथन में एक लोकप्रिय क्रिप्टोग्राफ़िक लाइब्रेरी है जो एईएस सममित-कुंजी क्रिप्टोग्राफी के साथ डेटा को एन्क्रिप्ट और डिक्रिप्ट करने के लिए उपयोग में आसान तरीके प्रदान करती है। लाइब्रेरी गारंटी देती है कि फर्नेट का उपयोग करके एन्क्रिप्ट किए गए डेटा को आगे हेरफेर या कुंजी के बिना पढ़ा नहीं जा सकता है, जिससे डेटा की गोपनीयता और अखंडता सुनिश्चित होती है। फ़र्नेट सिफरटेक्स्ट के लिए URL-सुरक्षित/बेस 64 एन्कोडिंग का उपयोग करता है, जो इसे फ़ाइलों या डेटाबेस में एन्क्रिप्टेड डेटा संग्रहीत करने के लिए उपयुक्त बनाता है।

पंडों की लाइब्रेरी

पांडा पायथन में एक ओपन-सोर्स डेटा हेरफेर और डेटा विश्लेषण लाइब्रेरी है। यह डेटा संरचनाएँ प्रदान करता है, जैसे कि श्रृंखला और डेटाफ़्रेम, और डेटा को संभालने, बदलने और विज़ुअलाइज़ करने के लिए विभिन्न कार्य। पांडा संरचित या सारणीबद्ध डेटा के साथ काम करने के लिए विशेष रूप से उपयोगी है, जैसे CSV फ़ाइलें या SQL डेटाबेस। यह पुस्तकालय डेटा हेरफेर के कई पहलुओं को सरल करता है, जिससे यह डेटा विश्लेषण और मशीन सीखने के लिए एक आवश्यक उपकरण बन जाता है।

अंत में, फर्नेट और पंडों का उपयोग करके एक CSV फ़ाइल में सहेजे गए एन्क्रिप्टेड स्ट्रिंग्स को डिक्रिप्ट करना इस लेख में दिए गए चरणों का पालन करके प्राप्त किया जा सकता है। एक कस्टम डिक्रिप्शन फ़ंक्शन बनाकर और इसे डेटाफ़्रेम पर लागू करके, हम CSV फ़ाइल में संग्रहीत संवेदनशील डेटा को प्रभावी ढंग से डिक्रिप्ट कर सकते हैं।

संबंधित पोस्ट:

एक टिप्पणी छोड़ दो