Python :: Aufgabe #61
3 Lösungen
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.
Lösungen:
import random, string
random.seed()
inhalt = ''
z = input("Laenge: ")
laenge = int(z)
klein = input("Kleinbuchstabe (j/n): ")
gross = input("Grossbuchstaben (j/n): ")
zahl = input("Zahlen (j/n): ")
zeichen = input("Sonderzeichen (j/n): ")
if klein == 'j':
inhalt += string.ascii_lowercase
if gross == 'j':
inhalt += string.ascii_uppercase
if zahl == 'j':
inhalt += '0123456789'
if zeichen == 'j':
inhalt += '''`~!@#$%^&*()_+-=][';}{":/.,<>?"}'''
pw = ''.join(random.choice(inhalt) for i in range(laenge))
print("Passwort:", pw)# -*- 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)
import random
kleinB='qwertzuiopüasdfghjklöäyxcvbnm'
kleinB=list(kleinB)
großB='QWERTZUIOPÜASDFGHJKLÖÄYXCVBNM'
großB=list(großB)
sonderZ='!"§$%&/()=?*+#-.,;:_<>'
sonderZ=list(sonderZ)
length= input("Länge des Passworts: ")
kB= True if input("Klein Buchstaben?(y/n): ")=="y" else False
gB= True if input("Große Buchstaben?(y/n): ")=="y" else False
sZ= True if input("Sonderzeichen?(y/n): ")=="y" else False
paramterListe= []
if kB:
paramterListe.append(kleinB)
if gB:
paramterListe.append(großB)
if sZ:
paramterListe.append(sonderZ)
pw=""
for i in range(0,int(length)):
pw+=random.choice(random.choice(paramterListe))
print("Passwort: "+pw)
