Comparez les mots de passe de connexion par hachage avec hashlib de la bibliothèque standard

Il semble qu'il existe une bibliothèque qui peut facilement hacher dans la bibliothèque Python standard, alors j'ai essayé de l'utiliser

test1.py


# -*- coding: utf-8 -*-

import hashlib

if __name__ == "__main__":

	#Créer un objet de hachage
	md5 = hashlib.md5()

	#Jeu de cordes
	md5.update("password")

	print md5.digest()
	print md5.hexdigest()

test1.Résultat de sortie de py


_M;Ze ヨ ・ Gukpa
5f4dcc3b5aa765d61d8327deb882cf99

ʻImporter l'importation en écrivant hashlib`.

  1. Créez un objet selon l'algorithme que vous souhaitez utiliser (cette fois en utilisant md5)
  2. Définissez la chaîne de caractères que vous souhaitez hacher dans l'objet créé
  3. Hash avec .hexdigest (je ne suis pas sûr de .digest)

Il semble que la chaîne de caractères d'origine ne puisse pas être connue une fois qu'elle est hachée. Le mot de passe n'est donc jamais connu de personne! !!

Vérifiez si le mot de passe d'origine correspond au mot de passe saisi

Vous pouvez également hacher le mot de passe saisi et le comparer.

hash_test.py


# -*- coding: utf-8 -*-

import hashlib
import sys

def createHash(password):

	#Créer un objet de hachage
	hashObj = hashlib.md5()

	#Spécifiez la chaîne de caractères à hacher
	hashObj.update(password)

	#Renvoie la version hachée
	return hashObj.hexdigest()


if __name__ == "__main__":

	#Hash le mot de passe d'origine
	checkPass = createHash("password")

	#Obtenir des arguments de ligne de commande
	password = sys.argv[1]

	#Hashing
	password = createHash(password)

	#Le mot de passe saisi correspond-il?
	if checkPass == password:
		print u"Connexion réussie"
	else:
		print u"Erreur d'authentification"

hash_test.Résultat d'exécution de py


\python>hash_test.py pass
Erreur d'authentification

\python>hash_test.py password
Connexion réussie

\python>hash_test.py Password
Erreur d'authentification

Il semble qu'il soit également sensible à la casse (naturellement ...)

Les références

Documentation [À propos du hachage](http://e-words.jp/w/%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E9%96%A2% E6% 95% B0.html, "Qu'est-ce qu'une fonction de hachage? | Fonction de résumé de message | Algorithme de hachage - Signification / définition: glossaire informatique")

Recommended Posts

Comparez les mots de passe de connexion par hachage avec hashlib de la bibliothèque standard
Ce que vous pouvez faire avec les statistiques de la bibliothèque Python standard
J'ai comparé la vitesse de Hash avec Topaz, Ruby et Python
Comparez DCGAN et pix2pix avec Keras
Connectez-vous avec PycURL et recevez une réponse
Comparez deux images avec le hachage d'image
Comparez le retour nocturne et le retour diurne du cours moyen de l'action Nikkei avec Python
Dispersion avec la bibliothèque standard et l'oreiller de Python Trouvez l'écart type RVB de l'image et déterminez s'il est monochromatique
Calculer et afficher le poids standard avec python
2. Écart moyen et standard avec le réseau neuronal!
Comment passer le chemin vers la bibliothèque construite avec pyenv et virtualenv avec PyCharm
Résolution du problème du voyageur de commerce avec l'algorithme génétique (GA) et sa bibliothèque (vcopt)