Wie erstelle ich einen Passwort-Generator mit Python?

Veröffentlicht: 2021-08-20

Sicherheit ist einer der wichtigsten Teile unseres Lebens. Die Bedeutung der Sicherheit nimmt von Tag zu Tag zu, da die meisten Dinge online gehen. Passwörter kommen ans Licht, wenn wir über Sicherheit sprechen.

In diesem Artikel erstellen wir einen Passwortgenerator, der uns hilft, schnell zufällige und sichere Passwörter zu generieren.

Warum brauchen wir einen Passwortgenerator?

Weil wir uns nicht sofort verschiedene Muster von Passwörtern vorstellen können.

Bei Computern ist dies jedoch nicht der Fall. Computer können basierend auf unseren Anpassungen in Sekundenschnelle zufällige und starke Passwörter generieren. Es gibt viele Passwort-Generatoren.

Können wir unsere eigenen mit den Anpassungen erstellen, die wir mögen?

Ja, wir können definitiv einen erstellen. Und hier zeigen wir Ihnen, wie das geht.

Lassen Sie uns einen Passwortgenerator erstellen.

Passwortgenerator

Das Beste daran, unseren eigenen Passwortgenerator zu erstellen, ist, dass wir ihn nach Belieben anpassen können.

Zuerst erstellen wir einen Passwortgenerator, der die Länge des Passworts abfragt und ein zufälliges Passwort generiert, das Ziffern, Alphabete und Sonderzeichen enthält.

Als Nächstes werden wir es verbessern, indem wir nach der Anzahl der einzelnen Zeichentypen fragen, z. B. nach der Anzahl der Ziffern, Alphabete und Sonderzeichen.

Sehen wir uns also ohne weiteres die Schritte zum Erstellen eines Passwortgenerators mit Python an.

Schritte

  • Speichern Sie alle Zeichen als Liste. Wir können das String-Modul von Python verwenden oder alle eingeben.
  • Bitten Sie den Benutzer, die Länge des Passworts einzugeben.
  • random.shuffle die Zeichen mit der Methode random.shuffle .
  • Initialisieren Sie eine leere Liste, um das Kennwort zu speichern.
  • Schreiben Sie eine Schleife, die length mal iteriert.
    • Wählen Sie ein zufälliges Zeichen aus allen Zeichen mit der Methode random.choice .
    • Hängen Sie das Zufallszeichen an das Passwort an.
  • Mischen Sie die resultierende Passwortliste, um sie zufälliger zu machen.
  • Konvertieren Sie die Kennwortliste mithilfe der join Methode in eine Zeichenfolge.
  • Drucken Sie das Passwort aus.

Befolgen Sie die obigen Schritte und versuchen Sie, Code zu schreiben. Machen Sie sich keine Sorgen, auch wenn Sie den Code nicht schreiben können. Sehen Sie sich den Code unten an.

Code

 import string import random ## characters to generate password from characters = list(string.ascii_letters + string.digits + "[email protected]#$%^&*()") def generate_random_password(): ## length of password from the user length = int(input("Enter password length: ")) ## shuffling the characters random.shuffle(characters) ## picking random characters from the list password = [] for i in range(length): password.append(random.choice(characters)) ## shuffling the resultant password random.shuffle(password) ## converting the list to string ## printing the list print("".join(password)) ## invoking the function generate_random_password()

Der obige Code ist selbsterklärend. Wir haben gerade die beschriebenen Schritte zum Schreiben von Code befolgt. Sie werden also keine Probleme beim Verständnis des Codes haben, wenn Sie die Schritte lesen.

Führen Sie nun den Code aus und generieren Sie ein Passwort. Eine Beispielausgabe sieht wie folgt aus.

 Enter password length: 10 d&amIzK%d)

Beachten Sie das Passwort in der obigen Ausgabe. Gibt es eine Ziffer? Nein. Es gibt keine Garantie dafür, dass das Programm Ziffern enthält.

Als nächstes versuchen wir sicherzustellen, dass das Programm Ziffern und Sonderzeichen enthält, indem wir den Benutzer auffordern, die gewünschte Anzahl von Ziffern, Alphabeten und Sonderzeichen einzugeben.

Wenn der Benutzer die Anzahl der Zeichen für jeden Typ eingibt, wird das Programm die entsprechende Anzahl von Zeichentypen in das Passwort aufnehmen.

Sehen wir uns den Code an, der die Anzahl der Zeichen für jeden Typ akzeptiert und das Passwort generiert.

 import string import random ## characters to generate password from alphabets = list(string.ascii_letters) digits = list(string.digits) special_characters = list("[email protected]#$%^&*()") characters = list(string.ascii_letters + string.digits + "[email protected]#$%^&*()") def generate_random_password(): ## length of password from the user length = int(input("Enter password length: ")) ## number of character types alphabets_count = int(input("Enter alphabets count in password: ")) digits_count = int(input("Enter digits count in password: ")) special_characters_count = int(input("Enter special characters count in password: ")) characters_count = alphabets_count + digits_count + special_characters_count ## check the total length with characters sum count ## print not valid if the sum is greater than length if characters_count > length: print("Characters total count is greater than the password length") return ## initializing the password password = [] ## picking random alphabets for i in range(alphabets_count): password.append(random.choice(alphabets)) ## picking random digits for i in range(digits_count): password.append(random.choice(digits)) ## picking random alphabets for i in range(special_characters_count): password.append(random.choice(special_characters)) ## if the total characters count is less than the password length ## add random characters to make it equal to the length if characters_count < length: random.shuffle(characters) for i in range(length - characters_count): password.append(random.choice(characters)) ## shuffling the resultant password random.shuffle(password) ## converting the list to string ## printing the list print("".join(password)) ## invoking the function generate_random_password()

Was ist also der Unterschied zwischen dem vorherigen Code und diesem Code?

  • Wir haben für jeden Zeichentyp separate Schleifen geschrieben, um sie dem Passwort hinzuzufügen.
  • Es gibt zwei bedingte Prüfungen, um die Gesamtzahl der Zeichen mit der Kennwortlänge zu validieren.

Wir haben einen zusätzlichen Code hinzugefügt. Das Muster ähnelt jedoch dem vorherigen Code. Sie werden also keine Schwierigkeiten haben, es zu verstehen.

Jetzt ist es an der Zeit, die Ausgabe auszuführen und zu überprüfen. Sehen Sie sich den folgenden Testlauf an.

 Enter password length: 10 Enter alphabets count in password: 3 Enter digits count in password: 2 Enter special characters count in password: 3 V2(&#XlQq1

Wenn Sie sehen, dass das Kennwort dieses Mal generiert wurde, enthält es die Mindestanzahl von Zeichen, die der Benutzer wünscht. Und das Programm hat 2 weitere zufällige Zeichen eingefügt, um die Passwortlänge der Benutzereingabe anzupassen.

Hurra! Wir haben einen kompletten starken Passwort-Generator.

Fazit

Wir haben gesehen, wie man einen Passwortgenerator von Grund auf neu erstellt. Können wir weitere Funktionen hinzufügen? Ja, wir können so viele hinzufügen, wie wir wollen. Stellen Sie jedoch sicher, dass das resultierende Kennwort stark genug ist.

Generieren Sie die Passwörter aus dem Code und verwenden Sie diese für Ihren nächsten Online-Account.

Als nächstes erfahren Sie, wie Sie in Python ein Tic-Tac-Toe-Spiel erstellen.

Viel Spaß beim Codieren!