Erstellen Sie mit Secret Lib einen sicheren Python-Passwortgenerator

Barbara Streisand
Freigeben: 2024-10-16 12:10:29
Original
109 Leute haben es durchsucht

Build a Secure Python Password Generator Using Secret Lib

Nachdem ich den Passwortgenerator erstellt hatte, erhielt ich einige erstaunliche Rezensionen, und zwei stachen für mich heraus: Guillaume Ste-Marie befürwortete die Verwendung von Seeds, um die Zufälligkeit zu erhöhen, und Christian Ledermann befürwortete ebenfalls diese Geheimnisse sollte „random“ ersetzen, da „random“ nicht wirklich „random“ ist.

Das Secrets-Modul generiert kryptografisch starke Zufallszahlen, die für die Verwaltung von Daten wie Passwörtern, Kontoauthentifizierung, Sicherheitstokens und zugehörigen Geheimnissen geeignet sind.

Der vollständige Code für den sicheren Passwortgenerator

Schauen wir uns zunächst den gesamten Code für unseren sicheren Passwortgenerator an. Machen Sie sich keine Sorgen, wenn es einschüchternd wirkt. Wir werden es im nächsten Abschnitt Zeile für Zeile aufschlüsseln.

    import secrets
    import string

    def generate_password(length=12):
        characters = string.ascii_letters + string.digits + string.punctuation
        password = ''.join(secrets.choice(characters) for _ in range(length))
        return password

    def main():
        print("Welcome to the Secure Password Generator!")

        try:
            length = int(input("Enter the desired password length: "))
            if length <= 0:
                raise ValueError("Password length must be positive")
        except ValueError as e:
            print(f"Invalid input: {e}")
            print("Using default length of 12 characters.")
            length = 12

        password = generate_password(length)
        print(f"\nYour generated password is: {password}")

    if __name__ == "__main__":
        main()
Nach dem Login kopieren

Lassen Sie uns dies nun aufschlüsseln und jeden Teil im Detail untersuchen.

Notwendige Module importieren

    import secrets
    import string
Nach dem Login kopieren

Diese beiden Zeilen importieren die Module, die wir für unseren sicheren Passwortgenerator benötigen:

  • Das Secrets-Modul bietet Funktionen zur Generierung kryptografisch starker Zufallszahlen, die sich zur Verwaltung von Geheimnissen wie Passwörtern eignen. Für kryptografische Zwecke ist es sicherer als das Zufallsmodul.

  • Das String-Modul bietet Konstanten, die verschiedene Arten von Zeichen (Buchstaben, Ziffern, Satzzeichen) enthalten. Dies erspart uns das manuelle Eintippen aller möglichen Zeichen, die wir in einem Passwort benötigen könnten.

    Die Funktion „generate_password“.

    def generate_password(length=12):
        characters = string.ascii_letters + string.digits + string.punctuation
        password = ''.join(secrets.choice(characters) for _ in range(length))
        return password
Nach dem Login kopieren

Diese Funktion generiert unser sicheres Passwort:

  • Wir erstellen eine Zeichenfolge, die alle möglichen Zeichen für unser Passwort enthält.

  • Wir verwenden Secrets.choice(), um zufällig Zeichen aus dieser Zeichenfolge auszuwählen. Dies ist sicherer als die Verwendung von random.choice(), da es den kryptografisch sicheren Zufallszahlengenerator des Betriebssystems verwendet.

  • Wir fügen diese Zeichen zu einer einzigen Zeichenfolge zusammen, um unser Passwort zu bilden.

    Die Hauptfunktion

    def main():
        print("Welcome to the Secure Password Generator!")

        try:
            length = int(input("Enter the desired password length: "))
            if length <= 0:
                raise ValueError("Password length must be positive")
        except ValueError as e:
            print(f"Invalid input: {e}")
            print("Using default length of 12 characters.")
            length = 12

        password = generate_password(length)
        print(f"\nYour generated password is: {password}")
Nach dem Login kopieren

Diese Funktion verwaltet die Benutzerinteraktion:

  • Es fordert den Benutzer zur Eingabe einer Passwortlänge auf.
  • Es behandelt potenzielle Fehler (wie nicht-numerische Eingaben oder negative Zahlen).
  • Es ruft „generate_password()“ mit der angegebenen Länge auf und gibt das Ergebnis aus. ## Ausführen des Skripts
    if __name__ == "__main__":
        main()
Nach dem Login kopieren

Dieser Block stellt sicher, dass die Funktion main() nur aufgerufen wird, wenn das Skript direkt ausgeführt wird, nicht wenn es als Modul importiert wird.

Verbesserung des Passwortgenerators

Hier sind einige Ideen, wie Sie Ihren Passwortgenerator weiter verbessern können:

  1. Benutzerdefinierte Zeichensätze: Ermöglichen Sie Benutzern, anzugeben, welche Zeichentypen sie in ihrem Passwort haben möchten.
  2. Passwortstärkeprüfung: Implementieren Sie eine Funktion, um die Stärke des generierten Passworts zu bewerten.
  3. Mehrere Passwörter: Geben Sie Benutzern die Möglichkeit, mehrere Passwörter gleichzeitig zu generieren.
  4. GUI-Schnittstelle: Erstellen Sie eine grafische Benutzeroberfläche mit einer Bibliothek wie Tkinter.
  5. Passwortspeicherung: Implementieren Sie eine sichere Methode zum Speichern generierter Passwörter, möglicherweise mit Verschlüsselung. ## Fazit

Durch die Verwendung des Secrets-Moduls anstelle des Zufallsmoduls haben wir einen sichereren Passwortgenerator erstellt.

Ressource

  • Erste Schritte mit Passwort-Crackern
  • 20 wesentliche Python-Erweiterungen für Visual Studio Code
  • Python für Web Scraping und Datenextraktion verwenden
  • Erste Schritte mit Python
  • Interaktive Karten mit Folium und Python erstellen

Das obige ist der detaillierte Inhalt vonErstellen Sie mit Secret Lib einen sicheren Python-Passwortgenerator. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!