Comment créer un casier-fichier à fermeture éclair en Python

Découvrez comment protéger vos fichiers zip avec un script Python personnalisé dans ce tutoriel. Apprenez à imposer des mots de passe forts en utilisant la pyzipper et à protéger vos données contre les cybermenaces. Parfait pour les programmeurs qui aiment DIY leurs outils de sécurité

Aujourd’hui, nous allons apprendre à construire un outil pratique et utile – un casier de fichiers zip. Parfois, nous voulons verrouiller nos fichiers pour les tenir à l’écart des chats indiscrets (surtout en ces temps de cyberattaques en augmentation rapide). Dans ce tutoriel, nous verrons comment nous pouvons le faire facilement avec Python. Bien sûr, il y a des programmes déjà conçus qui peuvent le faire pour nous, mais je veux dire, nous sommes des programmeurs, et nous aimons construire nos propres choses parce que nous sommes cool.

Dans le code de ce tutoriel, nous spécifions un fichier zip, le mot de passe pour verrouiller le fichier, et les fichiers à verrouiller dans ce fichier zip. En outre, notre programme porte la sécurité au niveau supérieur en s’assurant que l’utilisateur entre un mot de passe fort, et vous ne pouvez pas verrouiller un fichier zip avec un mot de passe faible. Ce n’est pas quelque chose que vous voyez dans la plupart des programmes qui remplissent cette fonction. J’ai inclus cette fonctionnalité parce que je pense que c’est nécessaire. Alors s’il vous plaît, faites-moi une faveur et stockez votre mot de passe dans un gestionnaire de mot de passe sécurisé (pour que vous n’oubliiez pas), similaire à ce que nous avons construit ici.

Alors, nous allons nous enfermer avec Python. La première chose à faire est d’installer la bibliothèque nécessaire. Qui est pyzipper. pyzipper est une bibliothèque Python pour travailler avec les archives zip, fournissant des fonctionnalités telles que la création, l’extraction et la gestion de fichiers zip avec un support de cryptage et de compression:

Ensuite, nous importons les bibliothèques nécessaires dans notre fichier nouvellement créé nommé fichier_zip.py par exemple:

Nous avons déjà parlé de ce que fait la pyzipper.

  • argparse est une bibliothèque Python utilisée pour analyser les arguments et les options de ligne de commande. Nous avons un tutoriel sur cette bibliothèque.
  • sysest une bibliothèque Python qui donne accès à diverses fonctions et variables du système d’exécution. Une clé est la sortie d’un programme.
  • reest la bibliothèque d’expression régulière Python pour travailler avec des expressions régulières.
  • coloramaest une bibliothèque qui simplifie la sortie de texte coloré dans le terminal, améliorant la présentation visuelle du texte avec des couleurs d’avant-plan et d’arrière-plan. Nous avons aussi un tutoriel détaillé sur Colorama.
  • getpass: est une bibliothèque Python qui nous permet d’entrer nos mots de passe sans les afficher à l’écran. Comme la façon dont nous entrons nos mots de passe sur le terminal Linux. C’est à des fins de sécurité.

The init()initialise la fonction colorama.

Ce programme est basé sur CLI. Ensuite, nous créons une fonction qui accepte les arguments de l’utilisateur à partir de la ligne de commande:

Dans cette fonction, nous permettons aux utilisateurs de spécifier différents arguments à travers la ligne de commande. Ceci est similaire aux boutons de clic sur un programme basé sur une interface graphique. Mais nous sommes cool, donc nous préférons CLI. Dans cette fonction, les utilisateurs peuvent utiliser --zipfile ou -zde spécifier le fichier zip à verrouiller. De même, --addfile ou -a spécifiez le(s) fichier(s) à verrouiller(s) dans le fichier zip.

Maintenant, créons une fonction qui vérifie la force du mot de passe. Comme je l’ai mentionné, notre programme ne permettra pas aux utilisateurs de définir des mots de passe faibles (pour des raisons de sécurité). Donc, nous créons une fonction pour vérifier si le mot de passe est suffisamment fort. Nous vérifions si le mot de passe n’est pas inférieur à 8 caractères et a une majuscule, une minuscule et un chiffre. Si le mot de passe ne répond pas aux critères, nous le signalons comme faible. N’hésitez pas à modifier ces critères à votre goût :

Maintenant, nous accédons à l’entrée de l’utilisateur (à partir du terminal) et obtenons le mot de passe souhaité par l’utilisateur en utilisant getpass. Ensuite, nous nous assurons que le mot de passe est fort. Si c’est le cas, nous verrouillons le fichier zip avec le mot de passe spécifié et ajoutons les fichiers spécifiés:

Le pyzipper.AESZipFile() un nouveau fichier zip crée avec un chiffrement AES, une compression L-MA et un mot de passe fourni par l’utilisateur, garantissant que le fichier est protégé par un mot de passe. On peut dire sans risque de se tromper que c’est le cœur de ce code.

Maintenant, exécutons notre code à partir de notre terminal :

Ici, j’ajoute les fichiers ransomware.py, test10.pdf, backdoor.py et domain-info.py dans mon fichier de démonstration protégé par mot de passe. Vérifions-le :

Ici, j’ajoute les fichiers test.py, info.py dans mon fichier de démonstration protégé par mot de passe. Vérifions-le :

Quand nous essayons d’y accéder:

Nous avons réussi à verrouiller le fichier zip. Maintenant, ce mot de passe ne peut être ouvert qu’avec le mot de passe défini. Nous avons également la liberté d’entrer nos mots de passe dans les lieux publics car ils ne sont pas affichés à l’écran. Mais cela ne signifie pas que nous devrions être négligents lorsque nous saisissons des mots de passe. Nous devrions essayer autant que possible de protéger nos mots de passe de l’œil du public.