Maison >développement back-end >Tutoriel Python >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.
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.
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
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.
def hash_with_MD5(message): print ("MD5:", hashlib.md5(message).hexdigest())
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.
É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é
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)
Hashed with MD5: 6c60b3cfe5124f982eb629e00a98f01f Hashed with SHA: 15e6e9ddbe43d9fe5745a1348bf1535b0456956d18473f5a3d14d6ab06737770 Hashed with blake2b: 109f6f017d7a77bcf57e4b48e9c744280ae7f836477c16464b27a3fe62e1353c70ec4c7f938080 60ee7c311094eede0235a43151c3d2b7401a3cb5a8f8ab3fbb
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().
password=input("message").encode()
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é.
Étape 1 - Utilisez la fonction input() pour recevoir les entrées de l'utilisateur
Étape 2- Convertir l'entrée au format codé
password=input(“Enter the password for hashing: ”).encode()
Enter the password for hashing: Python
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.
while True: choice = input("Enter choice(1/2/3): ") if choice in ('1', '2', '3'): try: …………………
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.
É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
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")
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
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!