Vous ne devez jamais conserver un mot de passe en clair lors de la confirmation d'un utilisateur ou d'une action similaire.
Étant donné que de nombreuses personnes utilisent le même mot de passe, si un attaquant découvre une base de données de mots de passe non cryptés, ils peuvent facilement être utilisés en conjonction avec des e-mails correspondants pour entrer dans le site Web ou le compte lié et même utilisés pour essayer d'accéder à d'autres comptes.
Les mots de passe sont souvent hachés aujourd'hui lorsqu'un mot de passe est fourni. Il est conseillé de hacher avec du sel et de conserver le sel avec le mot de passe haché.
Le salage peut sembler être l'une des étapes d'une recette de pommes de terre rissolées, mais en cryptographie, il s'agit d'ajouter des données aléatoires à l'entrée d'une fonction de hachage pour garantir que le hachage fournira toujours un résultat unique même si les entrées sont identiques.
En conséquence, le hachage distinctif créé en ajoutant le sel peut nous protéger de plusieurs méthodes d'attaque, y compris les assauts de table de hachage, tout en étouffant les tentatives de dictionnaire et de force brute hors ligne.
Ici, à l'aide d'extraits de code, nous vous montrerons comment utiliser 'bcrypt' pour sécuriser vos mots de passe.
Alors, qu'est-ce que 'bcrypt' ?
Bcrypt est une bibliothèque de hachage qui prend en charge plusieurs langues et fournit un cryptage de mot de passe spécial. Pour augmenter la sécurité de votre mot de passe, il produit automatiquement des caractères aléatoires supplémentaires (salt) lors du cryptage de votre chaîne.
Vous pouvez également choisir de définir le nombre de caractères supplémentaires que vous souhaitez ajouter à une chaîne entrante.
La bibliothèque bcrypt ne lit que le code octet, pas les chaînes brutes. Par conséquent, avant de soumettre une chaîne de mot de passe entrante à bcrypt pour le chiffrement, vous devez d'abord l'encoder.
Le cryptage et l'encodage ne sont pas les mêmes choses. Il s'assure simplement qu'une chaîne est lisible par machine avant d'être recouverte par une technique de chiffrement.
Utilisation de bcrypt pour chiffrer un mot de passe en Python
Python simplifie le cryptage des mots de passe bcrypt. Nous nous concentrerons sur le faire sans l'aide d'un cadre. Mais ne vous inquiétez pas, si vous comprenez comment enregistrer les entrées utilisateur et les lire depuis la base de données, la procédure est la même dans les frameworks.
Installation
Il vous suffit de configurer un environnement virtuel Python, puis d'utiliser un IDE tel que PyCharm. La bibliothèque doit alors être installée en premier :
Chiffrement du mot de passe
Voyons comment utiliser bcrypt pour chiffrer un texte après son installation :
Le code Python susmentionné s'exécute et génère une chaîne d'octets cryptée. Mais chaque fois que vous exécutez le script, le résultat est différent. Bcrypt utilise cette méthode pour s'assurer que chaque utilisateur dispose d'un mot de passe spécifiquement crypté.
Cela, incidemment, est pour le cryptage du mot de passe.
Comparaison et confirmation de mot de passe à l'aide de Bcrypt
Que se passe-t-il si vous souhaitez enregistrer le mot de passe haché et vérifier ultérieurement s'il correspond au mot de passe qu'un utilisateur a soumis pour authentification ?
C'est simple. Seul le mot de passe d'authentification doit être comparé à l'entrée de la base de données (ou en mémoire dans ce cas).
Le mot de passe d'authentification doit également être encodé avant d'être comparé à celui de la base de données car bcrypt ne peut lire que des chaînes d'octets. Fondamentalement, vous comparerez une entrée d'authentification codée au mot de passe haché codé que vous avez actuellement dans votre base de données.
Testons cela en utilisant des entrées Python fictives :
Lors de l'exécution du code susmentionné, vous êtes invité à entrer un nouveau mot de passe. Ceci est enregistré en mémoire par Python. Dans la section d'authentification, vous entrerez alors le même mot de passe, qui vous est privé.
Si le mot de passe est comparé et celui qui a été précédemment chiffré et enregistré la correspondance, Python émet un message de réussite.
Si ce n'est pas le cas, le message d'erreur est imprimé, puis la phrase else est ajoutée.
L'idée fondamentale est identique à celle de s'enregistrer puis de fournir un mot de passe à une base de données pour l'authentification.
Conclusion
Même si nous avons simplement utilisé des mots de passe cryptés pour montrer comment bcrypt fonctionne dans la mémoire courte Python simple, son applicabilité réelle réside dans les applications utilisateur.
Néanmoins, cet article montre les méthodes essentielles pour organiser votre code pour y parvenir, même dans des circonstances réelles.
Par exemple, si vous utilisez Flask, vous pouvez fournir les champs d'inscription et d'authentification via des formulaires Web distincts au lieu d'entrées.
Bien sûr, tout en comparant les mots de passe, vous lirez à partir d'une base de données qui contient des mots de passe cryptés qui sont conservés dans le monde réel.
Jona Nitsch
Merci pour cette explication simple et simple,
Cela m'a beaucoup aidé dans mon projet actuel.
Je pense que c'est très bien que l'exemple de code soit limité au strict minimum et non surchargé comme tant d'autres explications.
Meilleures salutations