تم حل: Fernet٪ 3A لا يمكن فك تشفير السلاسل المحفوظة في csv مع الباندا

Fernet هي مكتبة تشفير متماثل في Python توفر تشفيرًا آمنًا وسهل الاستخدام للبيانات الحساسة. تتمثل إحدى حالات الاستخدام الشائعة لـ Fernet في تشفير البيانات قبل تخزينها في ملف CSV ، مما يضمن فقط الأطراف المصرح لها الوصول إليها. ومع ذلك ، قد يكون فك تشفير هذه السلاسل المشفرة في ملف CSV صعبًا بعض الشيء ، خاصة عند استخدام مكتبة Pandas.

في هذه المقالة ، سنناقش حلًا لمشكلة فك تشفير السلاسل المحفوظة في ملف CSV باستخدام Fernet و Pandas. سنقدم شرحًا تفصيليًا للشفرة ، ونتعمق في الوظائف والمكتبات ذات الصلة المشاركة في العملية.

بادئ ذي بدء ، دعنا نناقش المشكلة بالتفصيل. عند استخدام تشفير Fernet لتأمين البيانات قبل تخزينها في ملف CSV ، قد يكون من الصعب فك تشفير البيانات مرة أخرى أثناء استخدام Pandas لقراءة الملف. تتطلب السلاسل المشفرة معالجة مناسبة لضمان سلامتها أثناء فك التشفير.

حل للمشكلة

يتمثل أحد الحلول المحتملة لهذه المشكلة في استخدام وظائف مخصصة وتطبيقها على إطار البيانات الذي تم الحصول عليه من ملف CSV. سننشئ وظيفة لفك تشفير السلاسل المشفرة باستخدام مكتبة Fernet ، ثم نطبق هذه الوظيفة على إطار بيانات Pandas الذي يحتوي على البيانات المشفرة.

فيما يلي شرح تفصيلي للكود:

1. أولاً ، نحتاج إلى استيراد المكتبات الضرورية:

import pandas as pd
from cryptography.fernet import Fernet

2. بعد ذلك ، دعنا ننشئ مفتاح Fernet ونشفّر بعض عينات البيانات. لنفترض أننا قمنا بتشفير البيانات التالية وحفظها في ملف CSV باسم "encrypted_data.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. الآن ، دعنا ننشئ وظيفة لفك تشفير السلاسل المشفرة باستخدام مفتاح Fernet المحدد:

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 الذي يحتوي على بيانات مشفرة باستخدام Pandas:

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

5. أخيرًا ، قم بتطبيق وظيفة "decrypt_string" على العمود المشفر في إطار البيانات باستخدام طريقة "التطبيق" وقم بتخزين البيانات التي تم فك تشفيرها في عمود جديد. لاحظ أنك تحتاج إلى تمرير المفتاح كوسيطة إضافية في طريقة "تطبيق":

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

مكتبة فيرنت

Fernet هي مكتبة تشفير شائعة في Python توفر طرقًا سهلة الاستخدام لتشفير البيانات وفك تشفيرها باستخدام تشفير المفتاح المتماثل AES. تضمن المكتبة عدم إمكانية معالجة البيانات المشفرة باستخدام Fernet أو قراءتها بدون المفتاح ، مما يضمن سرية البيانات وسلامتها. يستخدم Fernet تشفير URL-safe / base64 للنص المشفر ، مما يجعله مناسبًا لتخزين البيانات المشفرة في ملفات أو قواعد بيانات.

مكتبة الباندا

الباندا هي مكتبة مفتوحة المصدر لمعالجة البيانات وتحليل البيانات في بايثون. يوفر هياكل البيانات ، مثل السلسلة وإطار البيانات ، ووظائف مختلفة لمعالجة البيانات وتحويلها وتصورها. تعد Pandas مفيدة بشكل خاص للعمل مع البيانات المنظمة أو الجدولية ، مثل ملفات CSV أو قواعد بيانات SQL. تعمل هذه المكتبة على تبسيط العديد من جوانب معالجة البيانات ، مما يجعلها أداة أساسية لتحليل البيانات والتعلم الآلي.

في الختام ، يمكن فك تشفير السلاسل المشفرة المحفوظة في ملف CSV باستخدام Fernet و Pandas باتباع الخطوات الواردة في هذه المقالة. من خلال إنشاء وظيفة فك تشفير مخصصة وتطبيقها على إطار البيانات ، يمكننا فك تشفير البيانات الحساسة المخزنة في ملف CSV بشكل فعال.

الوظائف ذات الصلة:

اترك تعليق