Επιλύθηκε: Fernet%3A Δεν είναι δυνατή η αποκρυπτογράφηση συμβολοσειρών που έχουν αποθηκευτεί σε csv με panda

Το Fernet είναι μια συμμετρική βιβλιοθήκη κρυπτογράφησης στην Python που παρέχει ασφαλή και εύχρηστη κρυπτογράφηση για ευαίσθητα δεδομένα. Μια συνηθισμένη περίπτωση χρήσης του Fernet είναι η κρυπτογράφηση δεδομένων πριν από την αποθήκευσή τους σε ένα αρχείο CSV, διασφαλίζοντας ότι μόνο εξουσιοδοτημένα μέρη έχουν πρόσβαση σε αυτά. Ωστόσο, η αποκρυπτογράφηση αυτών των κρυπτογραφημένων συμβολοσειρών σε ένα αρχείο CSV μπορεί να είναι λίγο δύσκολη, ειδικά όταν χρησιμοποιείτε τη βιβλιοθήκη Pandas.

Σε αυτό το άρθρο, θα συζητήσουμε μια λύση στο πρόβλημα της αποκρυπτογράφησης συμβολοσειρών που έχουν αποθηκευτεί σε ένα αρχείο CSV χρησιμοποιώντας Fernet και Pandas. Θα παρέχουμε μια εξήγηση βήμα προς βήμα του κώδικα και θα εμβαθύνουμε στις σχετικές λειτουργίες και βιβλιοθήκες που εμπλέκονται στη διαδικασία.

Αρχικά, ας συζητήσουμε το πρόβλημα λεπτομερώς. Όταν χρησιμοποιείτε κρυπτογράφηση Fernet για να ασφαλίσετε δεδομένα πριν τα αποθηκεύσετε σε ένα αρχείο CSV, μπορεί να είναι δύσκολο να αποκρυπτογραφήσετε τα δεδομένα ξανά ενώ χρησιμοποιείτε τα Panda για την ανάγνωση του αρχείου. Οι κρυπτογραφημένες συμβολοσειρές απαιτούν κατάλληλο χειρισμό για να διασφαλιστεί η ακεραιότητά τους κατά την αποκρυπτογράφηση.

Λύση στο πρόβλημα

Μια πιθανή λύση σε αυτό το πρόβλημα είναι η χρήση προσαρμοσμένων συναρτήσεων και η εφαρμογή τους στο πλαίσιο δεδομένων που λαμβάνεται από το αρχείο CSV. Θα δημιουργήσουμε μια συνάρτηση για την αποκρυπτογράφηση των κρυπτογραφημένων συμβολοσειρών χρησιμοποιώντας τη βιβλιοθήκη Fernet και, στη συνέχεια, θα εφαρμόσουμε αυτήν τη συνάρτηση στο πλαίσιο δεδομένων Pandas που περιέχει τα κρυπτογραφημένα δεδομένα.

Ακολουθεί μια εξήγηση βήμα προς βήμα του κώδικα:

1. Αρχικά, πρέπει να εισαγάγουμε τις απαραίτητες βιβλιοθήκες:

import pandas as pd
from cryptography.fernet import Fernet

2. Στη συνέχεια, ας δημιουργήσουμε ένα κλειδί Fernet και ας κρυπτογραφήσουμε ορισμένα δείγματα δεδομένων. Ας υποθέσουμε ότι έχουμε κρυπτογραφήσει τα ακόλουθα δεδομένα και τα έχουμε αποθηκεύσει σε ένα αρχείο CSV με το όνομα "encrypted_data.csv" με δύο στήλες "data" και "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. Τώρα, ας δημιουργήσουμε μια συνάρτηση για την αποκρυπτογράφηση των κρυπτογραφημένων συμβολοσειρών με το δεδομένο κλειδί 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 που περιέχει κρυπτογραφημένα δεδομένα χρησιμοποιώντας Panda:

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

5. Τέλος, εφαρμόστε τη συνάρτηση «decrypt_string» στην κρυπτογραφημένη στήλη του πλαισίου δεδομένων χρησιμοποιώντας τη μέθοδο «apply» και αποθηκεύστε τα αποκρυπτογραφημένα δεδομένα σε μια νέα στήλη. Σημειώστε ότι πρέπει να περάσετε το κλειδί ως πρόσθετο όρισμα στη μέθοδο «εφαρμογή»:

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

Βιβλιοθήκη Fernet

Fernet είναι μια δημοφιλής κρυπτογραφική βιβλιοθήκη στην Python που παρέχει εύχρηστες μεθόδους για κρυπτογράφηση και αποκρυπτογράφηση δεδομένων με κρυπτογράφηση συμμετρικού κλειδιού AES. Η βιβλιοθήκη εγγυάται ότι τα δεδομένα που έχουν κρυπτογραφηθεί με χρήση Fernet δεν μπορούν να υποστούν περαιτέρω επεξεργασία ή ανάγνωση χωρίς το κλειδί, διασφαλίζοντας την εμπιστευτικότητα και την ακεραιότητα των δεδομένων. Το Fernet χρησιμοποιεί κωδικοποίηση URL-safe/base64 για κρυπτογραφημένα κείμενα, γεγονός που το καθιστά κατάλληλο για την αποθήκευση κρυπτογραφημένων δεδομένων σε αρχεία ή βάσεις δεδομένων.

Βιβλιοθήκη Pandas

Πάντα είναι μια βιβλιοθήκη χειρισμού δεδομένων ανοιχτού κώδικα και ανάλυσης δεδομένων στην Python. Παρέχει δομές δεδομένων, όπως Series και DataFrame, και διάφορες λειτουργίες για χειρισμό, μετασχηματισμό και οπτικοποίηση δεδομένων. Τα Pandas είναι ιδιαίτερα χρήσιμα για εργασία με δομημένα ή πινακοποιημένα δεδομένα, όπως αρχεία CSV ή βάσεις δεδομένων SQL. Αυτή η βιβλιοθήκη απλοποιεί πολλές πτυχές του χειρισμού δεδομένων, καθιστώντας την ένα ουσιαστικό εργαλείο για την ανάλυση δεδομένων και τη μηχανική μάθηση.

Συμπερασματικά, η αποκρυπτογράφηση κρυπτογραφημένων συμβολοσειρών που έχουν αποθηκευτεί σε ένα αρχείο CSV με χρήση Fernet και Panda μπορεί να επιτευχθεί ακολουθώντας τα βήματα που παρέχονται σε αυτό το άρθρο. Δημιουργώντας μια προσαρμοσμένη συνάρτηση αποκρυπτογράφησης και εφαρμόζοντάς την στο πλαίσιο δεδομένων, μπορούμε να αποκρυπτογραφήσουμε αποτελεσματικά τα ευαίσθητα δεδομένα που είναι αποθηκευμένα στο αρχείο CSV.

Σχετικές αναρτήσεις:

Αφήστε ένα σχόλιο