Lernen Sie, einen Passwortgenerator in Python zu programmieren, um sichere Passwörter zu generieren – mit dem Python secrets Modul.

Python ist eine vielseitige Programmiersprache, die Sie für Anwendungen in den Bereichen Automatisierung, Webentwicklung, Datenanalyse und mehr einsetzen können.

Sie können Python verwenden, um reale Aufgaben wie die Überwachung von Websites, den Versand von E-Mails und die Generierung von Passwörtern zu automatisieren. In diesem Tutorial lernen Sie, wie Sie einen sicheren und zufälligen Passwortgenerator in Python erstellen.

Lassen Sie uns beginnen..

3 Gründe, warum Sie einen Passwortgenerator in Python programmieren sollten

Random-Password-Generator

Hatten Sie es schon einmal satt, sichere Passwörter zu generieren und den Überblick über sie zu behalten? Hier erfahren Sie, warum Sie einen Passwortgenerator in Python programmieren sollten.

1. Automatisieren Sie den Prozess der Passwortgenerierung

An einem typischen Tag in Ihrem Leben werden Sie zahlreiche Websites besuchen – von E-Commerce-Websites bis hin zu Lern- und Programmierplattformen. Bei den meisten dieser Websites müssen Sie sich mit Ihren Anmeldedaten anmelden. Dies ist eine sich wiederholende Aufgabe, die Sie mit einem Python-Skript automatisieren können.

2. Sichere Passwörter generieren

Sich sichere Passwörter auszudenken, die den Sicherheitsanforderungen genügen, kann eine Herausforderung sein; triviale Passwörter, die nicht sicher sind, sind anfällig für Sicherheitsangriffe.

python-password-generator

Sie können Python verwenden, um sichere Passwörter programmatisch zu generieren. So können Sie das Skript ausführen, um Passwörter nach Bedarf zu generieren – ohne sich Gedanken darüber zu machen, ob das Passwort sicher ist.

3. Nehmen Sie ein praktisches Projekt in Ihr Portfolio auf

Wenn Sie Anfänger in der Python-Programmierung sind, sollten Sie Projekte erstellen, um Ihre Fähigkeiten zu verbessern und Ihre Programmierkenntnisse in einem Portfolio zu präsentieren.

Zusätzlich zu einem einfachen Python-Skript können Sie es weiter anpassen und als PyPI-Paket veröffentlichen. Sie können auch eine grafische Benutzeroberfläche mit Bibliotheken wie Tkinter hinzufügen und vieles mehr!

Auf diese Weise können Sie Ihren eigenen Passwort-Generator programmieren, um Ihre Passwörter sicher zu generieren und zu verwalten – und das auf verschiedenen Websites.

Das Zufallsmodul in Python: Ist es sicher genug?

Das Zufallsmodul von Python bietet auch Funktionen, mit denen Sie aus einem Alphabet Stichproben ziehen und scheinbar zufällige Sequenzen konstruieren können. Das Zufallsmodul erzeugt pseudo-zufällige Sequenzen. Lassen Sie uns klären, was Pseudo-Zufall bedeutet.

Der Begriff Pseudo-Zufall bedeutet, dass die Sequenz zwar zufällig erscheint, aber in Wirklichkeit deterministisch ist.

Wenn Sie also einen zufälligen Seed festlegen, wird das Zufallsmodul auf Ihrem Rechner und bei jedem, der das gleiche Skript mit dem gleichen Seed ausführt, die gleiche Sequenz ergeben.

Aus diesem Grund sollten Sie das Zufallsmodul nicht für Anwendungen verwenden, bei denen Sicherheit wichtig ist, wie z.B. bei Passwörtern.

Wann können Sie also das Zufallsmodul verwenden?

Für alle Anwendungen, die nicht sensibel sind, können Sie das Zufallsmodul verwenden. Ein Beispiel: In einer Klasse mit 40 Schülern gibt es drei Sätze von Fragebögen, A, B und C. Sie möchten jedem Schüler einen bestimmten Satz nach dem Zufallsprinzip zuweisen.

2

In diesem Fall können Sie random.choice() innerhalb eines Listenverstehensausdrucks verwenden, wie unten gezeigt:

import random

papers = ['A','B','C']

q_list = [random.choice(papers) for i in range(40)]
print(q_list)
Beispielhafte Ausgabe:
['A', 'A', 'B', 'B', 'B', 'B', 'B', 'C', 'B', 'A', 'C', 'C', 'B', 
'C', 'A', 'B', 'A', 'A', 'C', 'C', 'A', 'A', 'A', 'C', 'A', 'C', 
'A', 'C', 'B', 'B', 'B', 'B', 'A', 'A', 'B', 'B', 'A', 'A', 'B', 'B']

📑 D as Wichtigste in Kürze: Für statistische Simulationen können Sie das Modul random verwenden; für sensible Anwendungen sollten Sie das Modul secrets verwenden.

Python Modul secrets: Ihr Schlüssel zu sicheren Passwörtern

Das Python Enhancement Proposal, PEP 506, rät Entwicklern, das secrets Modul zu verwenden, wenn eine Sequenz kryptographisch sicher sein soll, wie z.B. Passwörter und Sicherheits-Token.

python-secrets-password-generator

Das secrets Modul verfügt über mehrere integrierte Funktionen, mit denen Sie Folgendes tun können:

  • Generieren Sie Sequenzen von Zufallszahlen, die für kryptografische Anwendungen sicher sind.
  • Verwenden Sie Funktionen wie choice(), randbits() und randbelow(), um sichere Zufallszahlen zu erzeugen.
  • Generieren Sie Token für das Zurücksetzen von Passwörtern, temporäre URLs und mehr.

Wie man einen Passwort-Generator in Python programmiert [in 4 Schritten]

Voraussetzungen: Sie müssen Python 3.6 oder eine neuere Version installiert haben, um mit dieser Anleitung programmieren zu können. Sie können den Beispielcode auch im Online Python Code Editor von Geekflare ausführen.

Schritt 1: Importieren Sie die erforderlichen Module

Als ersten Schritt importieren wir das Modul secrets. Dieses Modul ist in der Python-Standardbibliothek enthalten, so dass Sie es wie folgt importieren können:

importieren Sie Geheimnisse

Importieren wir auch das in Python integrierte String-Modul:

importieren Sie string

Schritt 2: Definieren Sie das Alphabet

Der nächste Schritt besteht darin, das Alphabet zu definieren. Alphabet bezeichnet die Menge aller Zeichen, die wir für die Erzeugung von Passwörtern in Betracht ziehen werden. In diesem Fall soll es folgende Zeichen enthalten: Klein- und Großbuchstaben sowie Sonderzeichen.

alphabet

Das String-Modul bietet String-Konstanten, die wir zur Definition des Alphabets verwenden können. Wir werden die folgenden Stringkonstanten verwenden:

  • Die Konstante ascii_letters ist eine Verkettung von Buchstaben in Klein- und Großbuchstaben.
  • Die Ziffernkonstante ist die Zeichenkette mit den Zahlen 0 bis 9: '0123456789'.
  • Die Interpunktionskonstante ist die Zeichenkette mit allen Sonderzeichen.
buchstaben = string.ascii_buchstaben
ziffern = string.ziffern
sonderzeichen = string.satzzeichen

Zum Schluss fügen wir die obigen String-Konstanten zusammen, um das Alphabet zu erhalten.

alphabet = buchstaben ziffern besondere_Zeichen

Schritt 3: Legen Sie die Länge des Passworts fest; Generieren Sie ein Passwort

Speichern Sie die Länge des Kennworts in der Variablen pwd_length. In diesem Beispiel hat die Kennwortzeichenfolge die Länge 12.

pwd_Länge = 12

▶️ Führen Sie nun die folgende Codezelle aus, um ein Kennwort zu generieren:

pwd = ''
for i in range(pwd_length):
  pwd = ''.join(geheimnisse.auswahl(alphabet))

print(pwd)
# Beispielhafte Ausgabe
}2:Lz,1!Gvo@

Der obige Code bewirkt Folgendes:

  • Die Passwortzeichenkette pwd ist zunächst eine leere Zeichenkette.
  • Wir wissen, dass secrets.choice(alphabet) ein Zeichen zurückgibt, das nach dem Zufallsprinzip aus dem Alphabet ausgewählt wird.
  • Wir verwenden die Methode join(), um dieses Zeichen der Zeichenkette pwd hinzuzufügen. Da wir keine Leerzeichen zwischen den Zeichen haben wollen, geben wir als Trennzeichen '' an.
  • Um die obigen Schritte zu wiederholen und ein Passwort zu generieren, verwenden wir eine Schleife, die so viele Iterationen durchläuft, wie die Länge des Passworts beträgt.

Schritt 4: Passen Sie Ihre Kennwörter anhand von Einschränkungen an

Sie können die Kennwortgenerierung anpassen, indem Sie prüfen, ob das Kennwort bestimmte Bedingungen erfüllt.

Lassen Sie uns zum Beispiel prüfen, ob die generierte Kennwortzeichenfolge der Länge 12 die folgenden Bedingungen erfüllt:

  • Die Zeichenfolge pwd sollte mindestens ein Sonderzeichen enthalten.
  • Sie sollte mindestens zwei Ziffern enthalten.

Im folgenden Codeschnipsel können Sie die Bedingung, auf die die if-Anweisung prüft, entsprechend den von Ihnen definierten Einschränkungen ändern.

while Wahr:
  pwd = ''
  for i in range(pwd_length):
    pwd = ''.join(geheimnisse.auswahl(alphabet))

  if (any(char in special_chars for char in pwd) und 
      sum(char in digits for char in pwd)>=2):
          break
print(pwd)
# Beispielhafte Ausgabe
lX]{`y47pM4t

In der obigen Codezelle verwenden wir eine unendliche while-Schleife, die so lange läuft, wie die Passwortzeichenkette pwd die Bedingungen nicht erfüllt. Wenn das generierte Kennwort pwd die Bedingungen erfüllt, brechen wir die Endlosschleife ab.

Hier ist der vollständige Code für den Python-Passwortgenerator:

# notwendige Importe
importieren Geheimnisse
importieren string

# Definieren Sie das Alphabet
buchstaben = string.ascii_buchstaben
ziffern = string.ziffern
special_chars = string.punctuation

alphabet = buchstaben ziffern sonderzeichen

# Passwortlänge festlegen
pwd_length = 12

# Erzeugt eine Passwortzeichenkette
pwd = ''
for i in range(pwd_length):
  pwd = ''.join(geheimnisse.auswahl(alphabet))

print(pwd)

# Passwort generieren, das die Bedingungen erfüllt
while True:
  pwd = ''
  for i in range(pwd_length):
    pwd = ''.join(geheimnisse.auswahl(alphabet))

  if (any(char in special_chars for char in pwd) und 
      sum(char in digits for char in pwd)>=2):
          break
print(pwd)

Fazit

Herzlichen Glückwunsch zum Abschluss dieses Tutorials! sie haben nun gelernt, wie man einen Passwortgenerator in Python programmiert.

  • Um kryptographisch sichere Passwörter zu generieren, sollten Sie das secrets Modul und nicht das random Modul verwenden.
  • Ein sicheres Passwort sollte ausreichend lang und zufällig sein, d.h. es sollte nicht einfach vorhergesagt oder generiert werden können. Es sollte aus einer Kombination von Groß- und Kleinbuchstaben, Ziffern und Sonderzeichen bestehen.
  • Python wird mit einem integrierten String-Modul ausgeliefert, das alle Buchstaben, Ziffern und Sonderzeichen in den Konstanten ascii_letters, digits und punctuation bereitstellt. Verwenden Sie die Syntax: string.constant, um auf diese Stringkonstanten zuzugreifen.
  • Sie können die oben genannten Konstanten verwenden, um ein Alphabet (eine Menge aller Zeichen) für die Passwortgenerierung zu definieren.
  • Sobald Sie ein Alphabet definiert haben, können Sie secrets.choice() verwenden, um ein zufälliges Zeichen daraus auszuwählen. Um dies für die gesamte Länge des Kennworts zu wiederholen, können Sie eine for-Schleife verwenden.

▶️ Als nächstes lesen Sie die Liste der zu verwendenden Python-Webserver.