[PYTHON] Hash Passwort Generator

Eine Geschichte darüber, wie komplexe Passwörter auf verschiedenen Websites sicher verwaltet werden.

Es gibt verschiedene Software und Apps für die Passwortverwaltung, und viele Leute werden sie mit ihnen verwalten. Das Verlassen auf eine bestimmte Software wirft jedoch Bedenken auf, ob dem Entwickler dieser Software vertraut werden kann, ob das Kennwort sicher ist oder ob die Software plötzlich unbrauchbar wird und auf das Kennwort nicht zugegriffen werden kann.

Einige würden sagen, dass sie eine Liste von Passwörtern erstellen und die Dateien verschlüsselt speichern.

Generierung von Hash-Passwörtern

Hier werde ich über die Methode zum Speichern des "Site-spezifischen Passwort-Seeds" in einer Datei und zum Generieren des Site-Passworts jedes Mal aus dem Hash-Algorithmus schreiben, der als "gespeichertes Master-Passwort" bestimmt wird.

C(H(M + S)) = P

H: Hash-Funktion C: Funktion zum Konvertieren von Hash in Kennwortzeichenfolge M: Erinnertes Master-Passwort S: Site-spezifischer Passwort-Startwert P: Site-Passwort

Diese Methode ist widerstandsfähiger gegen Round-Robin-Angriffe als die Methode "Kennwort verschlüsseln und speichern". Dies liegt daran, dass Sie bei der Eingabe eines geeigneten Hauptkennworts für den Versuch nicht feststellen können, ob das generierte Kennwort korrekt ist oder nicht, es sei denn, Sie versuchen tatsächlich, sich auf der Site anzumelden.

Python 3-Versionsprogramm

Ich habe ein solches Programm in Python 3 veröffentlicht.

Passwortgenerator

Schreiben und verwenden Sie den "standortspezifischen Passwort-Seed" direkt im Programm. Als Beispiel sind "Site-spezifische Passwort-Seeds" von Google, Amazon und Twitter enthalten.

Speichern Sie dieses Programm als Passwort und speichern Sie es irgendwo in Ihrem Pfad

password google

Beim Start als

Bitte geben Sie das Master-Passwort ein.

Wird angezeigt, geben Sie das dort festgelegte Hauptkennwort ein, und das Kennwort wird angezeigt. Sie können es auch so einstellen, dass es in die Zwischenablage kopiert wird (siehe Quellcode).

Informationen für jede Site werden zu Beginn des Programms als Wörterbuchobjekt verwendet.

sitekey = {
    "google" : ["sha512", "an", 16, "kKkMqYDUIivWLi3WSt3VndHci"], 
    "amazon" : ["sha3_384", "an", 16, "stBuQIQgT9Yp84RBK3HdllnUK"],
    "twitter" : ["sha3_512", "an", 14, "UmhvSHT72smO4aI1LMYt7H2el"]
}

Da es definiert ist als, hier neu schreiben. Hier werden nicht nur der ortsspezifische Kennworttyp, sondern auch der Hash-Algorithmus, der Kennwortzeichentyp (ein ist ein Alphabet und eine Zahl) und die Kennwortlänge angegeben. Wenn Sie ein Element hinzufügen, werden diese Informationen angezeigt, sodass Sie Informationen wie die Benutzer-ID für jede Site, die registrierte E-Mail-Adresse und die für die zweistufige Authentifizierung festgelegte Telefonnummer schreiben können. Weitere Informationen finden Sie in den Kommentaren zum Quellcode.

Wenn Sie mit viel Aufwand programmieren können, ist es besser, ein solches Programm in Ihrer Lieblingssprache zu erstellen und nach Ihren Wünschen zu verwalten. Ich verwalte alle meine eigenen Skripte in einem privaten Git-Repository und verwende sie über den Pfad zu diesem Verzeichnis, aber ich verwalte dort auch meine eigenen Skripte zur Passwortgenerierung.

JavaScript-Version des Programms

Ich habe die JavaScript-Version dieses Programms erstellt. Wenn Sie das Master-Passwort unter "Master" eingeben, wird das Passwort in Echtzeit generiert und durch "Kopieren" in die Zwischenablage kopiert. Ich verwende jsSHA, um den SHA zu berechnen. Das gleiche Passwort wird aus dem gleichen Master-Passwort in der Python-Version und der JavaScript-Version generiert. Die JavaScript-Version verwendet assoziative Arrays

var sitekey = new Object({
    "google" : ["sha512", "an", 16, "kKkMqYDUIivWLi3WSt3VndHci", "https://www.google.co.jp/",  "Benutzeridentifikation: xxx", "Zweistufige Zertifizierung: "], 
    "amazon" : ["sha3_384", "an", 16, "stBuQIQgT9Yp84RBK3HdllnUK", "https://www.amazon.co.jp/", "Email: xxx"],
    "twitter" : ["sha3_512", "an", 14, "UmhvSHT72smO4aI1LMYt7H2el", "https://twitter.com", "https://twitter.com/seki/"]
});

Da die Definition wie folgt lautet, können die Informationen für jede Site verwendet werden, indem die Python-Definition unverändert kopiert wird. Für Passwörter, auf die über das Handy zugegriffen werden muss, ist es praktisch, Passwörter auch in der JavaScript-Version generieren zu können.

Ich habe diesen Artikel für Programmierer geschrieben, aber ich habe ihn für die breite Öffentlichkeit in Informationen zur Kennwortverwaltung geschrieben.

Recommended Posts

Hash Passwort Generator
Gemusterter Passwortgenerator
Hinweise zur Erstellung des Kennwortgenerators
Generator
Generator
Hashhlib Hash
Generator Memo.