Heim >Backend-Entwicklung >Python-Tutorial >Erstellen Sie mit Secret Lib einen sicheren Python-Passwortgenerator
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.
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()
Lassen Sie uns dies nun aufschlüsseln und jeden Teil im Detail untersuchen.
import secrets import string
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.
def generate_password(length=12): characters = string.ascii_letters + string.digits + string.punctuation password = ''.join(secrets.choice(characters) for _ in range(length)) return password
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.
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}")
Diese Funktion verwaltet die Benutzerinteraktion:
if __name__ == "__main__": main()
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.
Hier sind einige Ideen, wie Sie Ihren Passwortgenerator weiter verbessern können:
Durch die Verwendung des Secrets-Moduls anstelle des Zufallsmoduls haben wir einen sichereren Passwortgenerator erstellt.
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!