Table des matières
Qu'est-ce que le hachage de mot de passe ?
Étapes d'utilisation
Étape 1 : Créez des fonctions pour différentes méthodes de hachage
Grammaire
Algorithme
Exemple
Sortie
Étape 2 : Obtenez la chaîne de mot de passe saisie par l'utilisateur
Étape 3 : Acceptez la saisie de l'utilisateur pour sélectionner la méthode de hachage
Conclusion
Maison développement back-end Tutoriel Python Quel est le programme le plus cool que vous ayez jamais réalisé en Python ?

Quel est le programme le plus cool que vous ayez jamais réalisé en Python ?

Sep 08, 2023 pm 09:21 PM
fonctions imbriquées itérateurs décorateurs

Quel est le programme le plus cool que vous ayez jamais réalisé en Python ?

Le programme Python le plus cool que j'ai jamais créé est le hacheur de mot de passe Python. Voyons d'abord ce qu'est le hachage de mot de passe Python.

Qu'est-ce que le hachage de mot de passe ?

Le hachage de mot de passe Python est une forme avancée de cryptage qui peut être utilisée pour stocker en toute sécurité les mots de passe en ligne. Dans le monde interconnecté d’aujourd’hui, les mots de passe des utilisateurs constituent l’une des informations sensibles les plus vulnérables sur Internet. Convertissez une chaîne de mot de passe en une chaîne de caractères aléatoires en utilisant différents algorithmes de hachage, utilisés dans mon programme. L'utilisateur est invité à saisir une chaîne de mot de passe, puis à sélectionner l'algorithme de hachage approprié à utiliser. Le hachage de sortie est ensuite affiché et peut être stocké en ligne.

Étapes d'utilisation

  • Créez des fonctions pour différentes méthodes de hachage

  • Accepte la chaîne de mot de passe saisie par l'utilisateur

  • Accepter la saisie de l'utilisateur pour sélectionner la méthode de hachage

  • Convertir la chaîne et fournir une sortie

Étape 1 : Créez des fonctions pour différentes méthodes de hachage

Tout d’abord, nous créons différentes fonctions qui prennent la chaîne du mot de passe comme paramètre et la convertissons sous forme de texte chiffré. Le texte chiffré est en fait la forme hachée des données. Différentes fonctions contiennent différents algorithmes de hachage.

Grammaire

def hash_with_MD5(message):
   print ("MD5:", hashlib.md5(message).hexdigest()) 
Copier après la connexion

Cette fonction prend un message comme paramètre et le convertit en texte chiffré à l'aide de l'algorithme de hachage MD5. Imprimez ensuite le résumé de hachage pour l'utilisateur. Si au lieu d'utiliser MD5, vous utilisez un autre algorithme de hachage, la syntaxe est la même, seul l'appel à la fonction de hachage change.

Algorithme

Étape 1 - Définir différentes fonctions pour différents algorithmes de hachage

Étape 2 - Utiliser la chaîne saisie par l'utilisateur comme paramètre de la fonction

Étape 3 - Dans le corps de la fonction, imprimez le résumé hexadécimal du mot de passe haché

Exemple

def hash_with_MD5(message):
   encoded=message.encode()
   print ("Hashed with MD5:", hashlib.md5(encoded).hexdigest())
def hash_with_SHA(message):
   encoded=message.encode()
   print ("Hashed with SHA:", hashlib.sha256(encoded).hexdigest())
def hash_with_blake(message):
   encoded=message.encode()
   print ("Hashed with blake2b:",   hashlib.blake2b(encoded).hexdigest())
message='tutorialspoint'
hash_with_MD5(message)
hash_with_SHA(message)
hash_with_blake(message)
Copier après la connexion

Sortie

Hashed with MD5: 6c60b3cfe5124f982eb629e00a98f01f
Hashed with SHA:
15e6e9ddbe43d9fe5745a1348bf1535b0456956d18473f5a3d14d6ab06737770
Hashed with blake2b:
109f6f017d7a77bcf57e4b48e9c744280ae7f836477c16464b27a3fe62e1353c70ec4c7f938080
60ee7c311094eede0235a43151c3d2b7401a3cb5a8f8ab3fbb 
Copier après la connexion

Étape 2 : Obtenez la chaîne de mot de passe saisie par l'utilisateur

L'étape suivante consiste à obtenir la saisie de l'utilisateur concernant le mot de passe qui doit être stocké. Pour des raisons de sécurité, le mot de passe à stocker doit être haché et le mot de passe saisi par l'utilisateur doit être codé avant le hachage pour garantir qu'il peut être transmis à la fonction de hachage. Cette opération d'encodage est effectuée par la fonction encode().

Grammaire

password=input("message").encode()
Copier après la connexion

Le mot de passe que nous recevons de l'utilisateur à l'aide de la fonction input() ne peut pas être utilisé pour le hachage, il est donc codé à l'aide de la fonction encode(). Ces deux étapes sont combinées ici en une seule commande pour faciliter le codage et la simplicité.

Algorithme

Étape 1 - Utilisez la fonction input() pour recevoir les entrées de l'utilisateur

Étape 2- Convertir l'entrée au format codé

Exemple

password=input(“Enter the password for hashing: ”).encode()
Copier après la connexion

Sortie

Enter the password for hashing: Python 
Copier après la connexion

Étape 3 : Acceptez la saisie de l'utilisateur pour sélectionner la méthode de hachage

Nous offrirons aux utilisateurs le choix de décider quel algorithme de hachage nous utiliserons pour hacher en toute sécurité les mots de passe. Différentes méthodes présentent différents avantages et inconvénients, c'est pourquoi nous laissons les utilisateurs choisir la méthode qui fonctionne le mieux pour un mot de passe spécifique. Ici, nous utilisons une simple structure If-else pour déterminer la sélection saisie par l'utilisateur.

Grammaire

while True:
   choice = input("Enter choice(1/2/3): ")
      if choice in ('1', '2', '3'):
      try:
      ………………… 
Copier après la connexion

Ici, nous demandons à l'utilisateur quel type de hachage il a effectué ainsi qu'une liste d'options. L'entrée est ensuite vérifiée par rapport à une liste d'entrées valides et, si elle est vraie, l'action requise est effectuée. Sinon, le contrôle du programme sortira de la boucle.

Algorithme

Étape 1 − Demander l'avis de l'utilisateur

Étape 2- Vérifiez si la saisie de l'utilisateur est valide

Étape 3 - Effectuer l'action sélectionnée

Étape 4 - Demandez si vous souhaitez en faire plus

Exemple

import hashlib
def hash_with_MD5(password):
   
   #encoded=password.encode()
   print ("Hashed with MD5:", hashlib.md5(password).hexdigest())
def hash_with_SHA(password):
   
   #encoded=password.encode()
   print ("Hashed with SHA:", hashlib.sha256(password).hexdigest())
def hash_with_blake(password):
   
   #encoded=password.encode()
   print ("Hashed with blake2b:", hashlib.blake2b(password).hexdigest())
print("Select hashing operation.") 
print("1.MD5")
print("2.SHA")
print("3.blake")
while True:
   
   # take input from the user
   choice = input("Enter choice(1/2/3): ")
   
   # check if choice is one of the four options
   if choice in ('1', '2', '3'):
      try:
         password=input('Enter the password for hashing: ').encode()
      except ValueError:
         print("Invalid input. Please enter a string.")
         continue
      if choice == '1':
         hash_with_MD5(password)
      elif choice == '2':
         hash_with_SHA(password)
      elif choice == '3':
         hash_with_blake(password)
            
            # checking if user wants another calculation
      # break the while loop if answer is no
      next_calculation = input("Let's do next calculation? (yes/no): ")
      if next_calculation == "no":
         break
      else:
         print("Invalid Input")
Copier après la connexion

Sortie

Select hashing operation.
1.MD5
2.SHA
3.blake
Enter choice(1/2/3): 2
Enter the password for hashing:Python
Hashed with SHA:
18885f27b5af9012df19e496460f9294d5ab76128824c6f993787004f6d9a7db
Let's do next calculation? (yes/no): yes
Enter choice(1/2/3): 1
Enter the password for hashing:Tutorialspoint 
Hashed with MD5: da653faa9f00528be9a57f3474f0e437
Let's do next calculation? (yes/no): no 
Copier après la connexion

Conclusion

Nous construisons donc ici un programme pour hacher les mots de passe des utilisateurs et les renvoyer pour un stockage sécurisé. Le programme fonctionne avec succès et répond à un objectif important. D'autres modifications peuvent être apportées pour implémenter des fonctionnalités plus récentes, ce que nous ferons plus tard.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser la belle soupe pour analyser HTML? Comment utiliser la belle soupe pour analyser HTML? Mar 10, 2025 pm 06:54 PM

Comment utiliser la belle soupe pour analyser HTML?

Comment utiliser Python pour trouver la distribution ZIPF d'un fichier texte Comment utiliser Python pour trouver la distribution ZIPF d'un fichier texte Mar 05, 2025 am 09:58 AM

Comment utiliser Python pour trouver la distribution ZIPF d'un fichier texte

Filtrage d'image en python Filtrage d'image en python Mar 03, 2025 am 09:44 AM

Filtrage d'image en python

Comment effectuer l'apprentissage en profondeur avec TensorFlow ou Pytorch? Comment effectuer l'apprentissage en profondeur avec TensorFlow ou Pytorch? Mar 10, 2025 pm 06:52 PM

Comment effectuer l'apprentissage en profondeur avec TensorFlow ou Pytorch?

Comment implémenter votre propre structure de données dans Python Comment implémenter votre propre structure de données dans Python Mar 03, 2025 am 09:28 AM

Comment implémenter votre propre structure de données dans Python

Introduction à la programmation parallèle et simultanée dans Python Introduction à la programmation parallèle et simultanée dans Python Mar 03, 2025 am 10:32 AM

Introduction à la programmation parallèle et simultanée dans Python

Sérialisation et désérialisation des objets Python: partie 1 Sérialisation et désérialisation des objets Python: partie 1 Mar 08, 2025 am 09:39 AM

Sérialisation et désérialisation des objets Python: partie 1

Modules mathématiques en python: statistiques Modules mathématiques en python: statistiques Mar 09, 2025 am 11:40 AM

Modules mathématiques en python: statistiques

See all articles