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
# -*- 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
