[PYTHON] Vergleichen Sie Anmeldekennwörter durch Hashing mit der Hash-Bibliothek der Standardbibliothek

Es scheint, dass es eine Bibliothek gibt, die leicht in der Standard-Python-Bibliothek hashen kann, also habe ich versucht, sie zu verwenden

test1.py


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

import hashlib

if __name__ == "__main__":

	#Erstellen eines Hash-Objekts
	md5 = hashlib.md5()

	#Satz von Zeichenfolgen
	md5.update("password")

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

test1.Ausgabeergebnis von py


_M.;Ze ヨ ・ Gukpa
5f4dcc3b5aa765d61d8327deb882cf99

Importieren Sie, indem Sie "import hash lib" schreiben.

  1. Erstellen Sie ein Objekt gemäß dem Algorithmus, den Sie verwenden möchten (diesmal mit md5).
  2. Legen Sie die Zeichenfolge fest, die Sie im erstellten Objekt hashen möchten
  3. Hash mit .hexdigest (Ich bin mir nicht sicher über .digest)

Es scheint, dass die ursprüngliche Zeichenfolge nach dem Hashing nicht mehr bekannt sein kann. Das Passwort ist also niemandem bekannt! !!

Überprüfen Sie, ob das ursprüngliche Passwort mit dem eingegebenen Passwort übereinstimmt

Sie können das eingegebene Passwort auch hashen und vergleichen.

hash_test.py


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

import hashlib
import sys

def createHash(password):

	#Erstellen eines Hash-Objekts
	hashObj = hashlib.md5()

	#Geben Sie die zu hashende Zeichenfolge an
	hashObj.update(password)

	#Gibt die Hash-Version zurück
	return hashObj.hexdigest()


if __name__ == "__main__":

	#Hash das ursprüngliche Passwort
	checkPass = createHash("password")

	#Befehlszeilenargumente abrufen
	password = sys.argv[1]

	#Hashing
	password = createHash(password)

	#Stimmt das eingegebene Passwort überein?
	if checkPass == password:
		print u"erfolgreicher Login"
	else:
		print u"Anmeldungsfehler"

hash_test.Ausführungsergebnis von py


\python>hash_test.py pass
Anmeldungsfehler

\python>hash_test.py password
erfolgreicher Login

\python>hash_test.py Password
Anmeldungsfehler

Es scheint, dass es auch zwischen Groß- und Kleinschreibung unterscheidet (natürlich ...)

Verweise

Dokumentation [Über Hashing](http://e-words.jp/w/%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E9%96%A2% E6% 95% B0.html, "Was ist eine Hash-Funktion? | Message Digest-Funktion | Hash-Algorithmus - Bedeutung / Definition: IT-Glossar")

Recommended Posts

Vergleichen Sie Anmeldekennwörter durch Hashing mit der Hash-Bibliothek der Standardbibliothek
Was können Sie mit den Standardstatistiken der Python-Bibliothek tun?
Ich habe die Geschwindigkeit von Hash mit Topaz, Ruby und Python verglichen
Vergleichen Sie DCGAN und pix2pix mit Keras
Melden Sie sich mit PycURL an und erhalten Sie eine Antwort
Vergleichen Sie zwei Bilder mit dem Bild-Hash
Vergleichen Sie die nächtliche Rendite und die tagsüber stattfindende Rendite des durchschnittlichen Aktienkurses von Nikkei mit Python
Dispersion mit Pythons Standardbibliothek und Kissen Ermitteln Sie die RGB-Standardabweichung des Bildes und stellen Sie fest, ob es monochromatisch ist
Berechnen Sie das Standardgewicht und zeigen Sie es mit Python an
2. Mittelwert und Standardabweichung beim neuronalen Netz!
So übergeben Sie den Pfad zu der mit pyenv und virtualenv mit PyCharm erstellten Bibliothek
Lösung des Problems des Handlungsreisenden mit dem genetischen Algorithmus (GA) und seiner Bibliothek (vcopt)