נפתרה: 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)

ספריית פרנט

פרנת היא ספריית קריפטוגרפיה פופולרית ב- Python המספקת שיטות קלות לשימוש להצפנה ופענוח נתונים באמצעות קריפטוגרפיה AES מפתח סימטרי. הספרייה מבטיחה שלא ניתן לבצע מניפולציות נוספות או לקרוא נתונים המוצפנים באמצעות Fernet ללא המפתח, מה שמבטיח סודיות ושלמות הנתונים. Fernet משתמשת בקידוד URL-safe/base64 עבור טקסטים צופנים, מה שהופך אותו למתאים לאחסון נתונים מוצפנים בקבצים או בבסיסי נתונים.

ספריית פנדה

פנדות היא ספריית מניפולציה וניתוח נתונים בקוד פתוח ב-Python. הוא מספק מבני נתונים, כגון Series ו-DataFrame, ופונקציות שונות לטיפול, שינוי והצגה של נתונים. Pandas שימושי במיוחד לעבודה עם נתונים מובנים או טבלאיים, כגון קבצי CSV או מסדי נתונים של SQL. ספרייה זו מפשטת היבטים רבים של מניפולציה של נתונים, מה שהופך אותה לכלי חיוני לניתוח נתונים ולמידת מכונה.

לסיכום, פענוח מחרוזות מוצפנות שנשמרו בקובץ CSV באמצעות Fernet ו-Pandas ניתן להשיג על ידי ביצוע השלבים המפורטים במאמר זה. על ידי יצירת פונקציית פענוח מותאמת אישית והחלתה על מסגרת הנתונים, נוכל לפענח ביעילות את הנתונים הרגישים המאוחסנים בקובץ ה-CSV.

הודעות קשורות:

השאירו תגובה