Résolu : Fernet%3A Impossible de déchiffrer les chaînes enregistrées en csv avec des pandas

Fernet est une bibliothèque de chiffrement symétrique en Python qui fournit un chiffrement sécurisé et facile à utiliser pour les données sensibles. Un cas d'utilisation courant de Fernet consiste à chiffrer les données avant de les stocker dans un fichier CSV, garantissant que seules les parties autorisées peuvent y accéder. Cependant, le décryptage de ces chaînes cryptées dans un fichier CSV peut être un peu délicat, en particulier lors de l'utilisation de la bibliothèque Pandas.

Dans cet article, nous discuterons d'une solution au problème de décryptage des chaînes enregistrées dans un fichier CSV à l'aide de Fernet et de Pandas. Nous fournirons une explication étape par étape du code et approfondirons les fonctions et bibliothèques pertinentes impliquées dans le processus.

Pour commencer, discutons du problème en détail. Lorsque vous utilisez le cryptage Fernet pour sécuriser les données avant de les stocker dans un fichier CSV, il peut être difficile de décrypter les données tout en utilisant Pandas pour lire le fichier. Les chaînes chiffrées nécessitent une manipulation appropriée pour garantir leur intégrité lors du déchiffrement.

Solution au problème

Une solution potentielle à ce problème consiste à utiliser des fonctions personnalisées et à les appliquer à la trame de données obtenue à partir du fichier CSV. Nous allons créer une fonction pour déchiffrer les chaînes chiffrées à l'aide de la bibliothèque Fernet, puis appliquer cette fonction au dataframe Pandas contenant les données chiffrées.

Voici une explication étape par étape du code :

1. Tout d'abord, nous devons importer les bibliothèques nécessaires :

import pandas as pd
from cryptography.fernet import Fernet

2. Ensuite, générons une clé Fernet et chiffrons quelques exemples de données. Supposons que nous ayons crypté les données suivantes et que nous les ayons enregistrées dans un fichier CSV nommé "encrypted_data.csv" avec deux colonnes "data" et "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. Maintenant, créons une fonction pour déchiffrer les chaînes chiffrées avec la clé Fernet donnée :

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. Nous pouvons lire le fichier CSV contenant les données chiffrées à l'aide de Pandas :

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

5. Enfin, appliquez la fonction 'decrypt_string' à la colonne chiffrée de la trame de données à l'aide de la méthode 'apply' et stockez les données déchiffrées dans une nouvelle colonne. Notez que vous devez passer la clé comme argument supplémentaire dans la méthode 'apply' :

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

Bibliothèque Fernet

Fernet est une bibliothèque cryptographique populaire en Python qui fournit des méthodes faciles à utiliser pour chiffrer et déchiffrer des données avec la cryptographie à clé symétrique AES. La bibliothèque garantit que les données cryptées à l'aide de Fernet ne peuvent plus être manipulées ou lues sans la clé, garantissant ainsi la confidentialité et l'intégrité des données. Fernet utilise l'encodage URL-safe/base64 pour les textes chiffrés, ce qui le rend approprié pour stocker des données chiffrées dans des fichiers ou des bases de données.

Bibliothèque des pandas

Pandas est une bibliothèque open source de manipulation et d'analyse de données en Python. Il fournit des structures de données, telles que Series et DataFrame, et diverses fonctions pour gérer, transformer et visualiser les données. Pandas est particulièrement utile pour travailler avec des données structurées ou tabulaires, telles que des fichiers CSV ou des bases de données SQL. Cette bibliothèque simplifie de nombreux aspects de la manipulation des données, ce qui en fait un outil essentiel pour l'analyse des données et l'apprentissage automatique.

En conclusion, le décryptage des chaînes cryptées enregistrées dans un fichier CSV à l'aide de Fernet et de Pandas peut être réalisé en suivant les étapes fournies dans cet article. En créant une fonction de décryptage personnalisée et en l'appliquant à la trame de données, nous pouvons décrypter efficacement les données sensibles stockées dans le fichier CSV.

Articles connexes

Laisser un commentaire