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)