Dans cet article, nous allons apprendre à chiffrer et déchiffrer des fichiers en utilisant Python à l’aide d’une bibliothèque de cryptographie. En d’autres termes, vous pouvez dire que dans ce tutoriel, vous apprendrez à sécuriser des fichiers à l’aide de Python ? Nous vivons dans un monde moderne où le transfert de données/informations est très facile et facile d’accès. Mais le transfert sécurisé des données est également important, c’est pourquoi la sécurité des données reste l’une des principales préoccupations.

Crypter : le cryptage est un processus de transformation du texte brut en quelque chose de vide de sens qui semblera aléatoire (texte chiffré).

Décryptage : le décryptage est un processus de transformation des fichiers cryptés en fichiers normaux que nous pouvons comprendre (texte clair).

Nous allons voir comment nous pouvons chiffrer et déchiffrer les fichiers en utilisant Python et en Python, nous avons une bibliothèque qui rend le processus de chiffrement et de déchiffrement très simple. Dans ce didacticiel, nous suivrons le type de chiffrement symétrique (chiffrement symétrique : lorsqu’une personne utilise le chiffrement symétrique pour chiffrer le fichier ou le message, seule cette personne est capable de lire le fichier en le déchiffrant à l’aide de la même clé qu’elle a utilisée pour chiffrer le fichier. Cela signifie la clé qui est utilisée pour chiffrer le fichier ou le message, seule cette clé peut déchiffrer le fichier. Si vous n’avez pas la clé ou si vous avez perdu la clé, vous ne pouvez pas y accéder).

Comment sécuriser des fichiers à l’aide de Python et de la cryptographie ?

  • Installation de la librairie python de cryptographie.
  • Création d’une clé pour la cryptographie.
  • Chargement de la clé.
  • Cryptage du fichier.
  • Le décryptage du fichier.

Étape -1 : Installation de la bibliothèque de cryptographie pour Python :

Si vous n’avez pas la bibliothèque de cryptographie, nous devons l’installer, ouvrez une invite de commande ou un terminal et collez la commande ci-dessous et appuyez sur Entrée :

pip3 install cryptography

Étape -2 : Génération d’une clé pour la cryptographie

Ouvrez maintenant votre IDE préféré et créez un nouveau fichier Python. Nous utilisons ici l’équation symétrique pour la cryptographie, pour cela nous avons besoin d’importer du fernet, c’est une cryptographie authentifiée qui ne permet pas de manipuler ou de lire le message sans utiliser la « clé » si vous ne l’avez pas vous pouvez’ pas le lire.

#import the- required module
from cryptography.fernet import Fernet

Générons maintenant la clé et enregistrons-la dans le même emplacement/dossier où se trouve notre fichier de données :

#generate the key
key = Fernet.generate_key()
#string the key into a file
with open('unlock.key', 'wb') as unlock:
     unlock.write(key)

Après avoir exécuté ce code, vous pouvez vérifier l’emplacement où se trouve votre code Python, vous devriez voir le nouveau nom de fichier unlock.key. Si vous le souhaitez, vous pouvez l’ouvrir dans n’importe quel éditeur de texte (code Microsoft Visual Studio). Vous pouvez voir dans le fichier qu’il contient notre clé qui devrait être une ligne de quelques caractères aléatoires.

Maintenant que nous avons la clé, chargeons la clé dans notre environnement pour chiffrer/déchiffrer le fichier. Ensuite, l’étape est très simple, il suffit d’ouvrir le fichier « unlock.key » et de le stocker dans la mémoire système locale :

#open the key
with open('unlock.key', 'rb') as unlock:
     key = unlock.read()
print(key)

Pour vérification, nous pouvons voir la sortie suivante, et nous pouvons également voir que la clé de chiffrement est stockée localement dans la mémoire système.

N61xnryWG23MHuYm2J4KiMbfmBEtb5 RUcXubcipU5is=

Étape -3 : chiffrement du fichier

Maintenant que nous avons le fichier pour le cryptage et la clé de cryptage, nous allons maintenant discuter de la façon d’écrire du code, puis de le coder :

Discutons de ce que nous devons faire pour chiffrer le fichier. Tout d’abord, nous devons initialiser le Fernet et stocker le fichier dans la variable fernet. Deuxièmement, nous devons lire le fichier d’origine (sample.txt). Ensuite, nous devons chiffrer les données à l’aide du fernet et les stocker comme chiffrées dans un objet. Enfin, nous pouvons l’écrire dans un nouveau fichier appelé « enc_sample.txt »

Voyons le code de ce processus :

#use the generated key
f = Fernet(key)
#open the original file to encrypt
with open('sample.txt', 'rb') as original_file:
     original = original_file.read()
#encrypt the file
encrypted = f.encrypt(original)
#you can write the encrypted data  file into a enc_sample.txt
with open ('enc_sample.txt', 'wb') as encrypted_file:
     encrypted_file.write(encrypted)
#note you can delete your original file if you want

Sortir

Lors de l’exécution du code, vous devriez voir quelque chose comme ceci :

The data in the file (sample.txt) before encryption:
 “my secret is in a file”
 The data in the file (enc_sample.txt) after encryption is:
 “gAAAAABbpv1I50T0J3Hy4cgoD30BSD0Jczj7sJVB1ThPN0bXE1zVUksgEeceTt378NMq39JoVCLMXptGPkDu8Q0-5HvKqYKZm4sLu5kXOUMUGM-ibi2aAFY=”

Étape -4 : décrypter le fichier

Une fois que vous avez crypté le fichier, vous pouvez supprimer le fichier d’origine et n’oubliez pas de transférer ce fichier que vous avez créé vers un autre emplacement. Parce que vous avez le cryptage du fichier d’origine, vous pouvez décrypter ce fichier à tout moment. Dans cette section, nous verrons comment nous pouvons le décrypter pour revenir au contenu d’origine.

C’est simple, il vous suffit de répéter le même processus à l’envers de la section précédente. C’est exactement le même processus, alors discutons de la façon dont nous pouvons inverser le fichier crypté en fichier décrypté, puis le coder.

Tout d’abord, nous devons initialiser l’objet Fernet et le stocker dans la variable fernet. Ensuite, nous devons lire le fichier crypté (enc_sample.txt). Ensuite, nous devons déchiffrer le fichier chiffré à l’aide de l’objet Fernet et le stocker en tant qu’objet. et enfin, nous allons l’écrire dans un nouveau fichier appelé « dec_sample.txt ».

Voyons le code de ce processus :

#first use the key
f = Fernet(key)
#open the encrypted file
with open('enc_sample.txt', 'rb') as encrypted_file:
     encrypted = encrypted_file.read()
#decrypt the file
decrypted = f.decrypt(encrypted)
#finally you can write the decrypted file into a dec_sample.txt
with open('dec_sample.txt', 'wb') as decrypted_file:
     decrypted_file.write(decrypted)

Sortir

Lors de l’exécution du code, vous devriez voir la sortie ci-dessous :

The data in the file (enc_sample.txt) after encryption is:
 “gAAAAABbpv1I50T0J3Hy4cgoD30BSD0Jczj7sJVB1ThPN0bXE1zVUksgEeceTt378NMq39JoVCLMXptGPkDu8Q0-5HvKqYKZm4sLu5kXOUMUGM-ibi2aAFY=”
The data in the file (dec_sample.txt) after decryption:
 “my secret is in a file”

Si vous comparez le fichier décrypté que nous avons créé (dec_sample.txt) et le fichier d’origine (sample.txt), vous verrez que les deux contenus du fichier sont les mêmes, ce qui signifie que notre processus de cryptage et de décryptage est réussi.

Derniers mots

Dans cet article, nous avons appris à utiliser le type de chiffrement de fichier symétrique pour chiffrer et déchiffrer le fichier et les données à l’intérieur du fichier à l’aide d’un langage de programmation appelé Python et d’une bibliothèque appelée cryptographie. Dans cette bibliothèque, le cryptage et le décryptage des fichiers est un processus simple. Nous n’avons pas besoin d’implémenter notre algorithme logique, vous pouvez simplement générer une clé, crypter le fichier puis décrypter avec la clé, c’est sûr et facile. Alors, comment sécuriser des fichiers avec Python ? C’est facile, non ?

Faites-nous savoir si vous avez des questions/commentaires concernant ce processus.

Bon codage !