Python :: Aufgabe #61 :: Lösung #2
3 Lösungen
#61
Passwortgenerator mit Parametern
Anfänger - Python
von pocki
- 27.11.2014 um 18:11 Uhr
Erstelle ein Programm/Funktion welche/s ein zufälliges Passwort erzeugt.
Als Parameter soll die Länge sowie die Art der darin vorkommenden Zeichen übergeben werden können.
Zur Auswahl sollen stehen: Kleinbuchstaben, Großbuchstaben, Zahlen und Sonderzeichen.
Jede beliebige Kombination der Parameter soll möglich sein.
Als Parameter soll die Länge sowie die Art der darin vorkommenden Zeichen übergeben werden können.
Zur Auswahl sollen stehen: Kleinbuchstaben, Großbuchstaben, Zahlen und Sonderzeichen.
Jede beliebige Kombination der Parameter soll möglich sein.
#2
von Nachbar (2820 Punkte)
- 21.08.2016 um 13:55 Uhr
Python-Code
# -*- coding: utf-8 -*- def pw(laenge, zeichen): from random import choice, shuffle kleinbuchstaben = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", \ "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"] grossbuchstaben = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", \ "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"] sonderzeichen = ["$", "%", "&", "*", "#", "~", "_", "@", "(", ")", "[", "]"] zahlen = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] p = [] pfinal = "" x, y = 0, 0 # Passwort generieren while x < laenge: if "k" in zeichen and x < laenge: p.append(choice(kleinbuchstaben)) x = x + 1 if "g" in zeichen and x < laenge: p.append(choice(grossbuchstaben)) x = x + 1 if "z" in zeichen and x < laenge: p.append(choice(zahlen)) x = x + 1 if "s" in zeichen and x < laenge: p.append(choice(sonderzeichen)) x = x + 1 shuffle(p) # Rückgabe als string while y < laenge: pfinal = pfinal + str(p[y]) y = y + 1 return pfinal # User input mit Ausnahmebehandlung # Passwortlänge z = 0 while z < 1: try: laenge = input("Wieviele Zeichen soll das Passwort enthalten?\n\n>> ") if laenge < 3: print "\nEin Passwort mit " + str(laenge) + " Zeichen ist unsinnig!\n" else: z = 1 except: print "Ungueltige Eingabe!\n" # Auswahl der Zeichen print "\nAuswahlmöglichkeiten der zu enthaltenden Zeichen (Bsp. kgzs):" print "Kleinbuchstaben:\tk\nGrossbuchstaben:\tg\nZahlen:\t\tz\n\ Sonderzeichen:\ts\n" while z > 0: try: zeichen = raw_input(">> ") if "k" not in zeichen and "g" not in zeichen and "z" not in zeichen\ and "s" not in zeichen: print "Ungueltige Eingabe!\n" else: z = 0 except: print "Ungueltige Eingabe!\n" # Ausgabe generiertes Passwort print "\n\nDas generierte Passwort lautet: " +\ pw(laenge, zeichen)
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1