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`.
.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! !!
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 ...)
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