Seite 1 von 1
Zufälliges Passwort in Python3
Verfasst: Sonntag 4. Oktober 2020, 17:33
von anonym13
Hallo Freunde der Programmierung,
ich bin ganz neu in der Programmierung und habe nun Python 3 für mich entdeckt.
Dazu nutze ich die Online-IDE von Repl.it, die mir sehr gut gefällt. (Link:
https://repl.it/languages/Python3)
Letzte Nacht kam mir die Idee, dass ich gerne einmal ein Programm schreiben wollen würde,
was mir ein zufälliges Passwort ausgibt, jedoch weiß ich nicht so recht, wie ich mit dem Programm anfangen soll, sowas aber auch!
Anfangen würde ich vermutlich damit, verschiedene Listen jeweils einmal mit Zahlen 0-9, Buchstaben A-Z und Sonderzeichen zu füllen.
Aber viel weiter reicht meine Vorstellungskraft aktuell nicht.
Ich denke, es wäre erstmal sinnvoll per IF-Abfrage die Anzahl der Zeichen abzufragen, und dann eine Ausgabe zu tätigen.
Wer gute Ideen und Lust hat einen Neuling zu unterstützen, so würde ich mich riesig freuen.
Mit freundlichen Grüßen
Der Mueller
Re: Zufälliges Passwort in Python3
Verfasst: Sonntag 4. Oktober 2020, 18:08
von mp1337
Hi, hier die Funktion aus meinem Programm:
Code: Alles auswählen
import random
ASCII_LETTERS = 'AaBbCcDdEeFfGgHJKkLMmNnPpQqRrSsTtVvWwXxYyZz'
DIGITS = '123456789'
SPECIAL_CHAR = '!"§$%&/()=?#+-_.:,;<>~*[]{}'
def generate_password(password_length=10, letters=False, digits=False, special=False):
"""Generating strong random passwords using
ASCII_LETTERS, DIGITS and SPECIAL_CHAR.
int for password length. default len of
10 characters.
"""
characters = ""
if letters:
characters += ASCII_LETTERS
if digits:
characters += DIGITS
if special:
characters += SPECIAL_CHAR
if not characters:
characters = ASCII_LETTERS + DIGITS + SPECIAL_CHAR
return "".join(random.choices(characters, k=password_length))
Re: Zufälliges Passwort in Python3
Verfasst: Sonntag 4. Oktober 2020, 18:24
von noisefloor
Hallo,
@mp1337: die Logik deiner Funktion ist komisch. Wenn letters und digits und special alle `False` sind, sollte man eigentlich erwarten, dass keine Passwort zurück geliefert wird und nicht alles benutzt wird.
Gruß, noisefloor
Re: Zufälliges Passwort in Python3
Verfasst: Sonntag 4. Oktober 2020, 19:25
von mp1337
Eigentlich nicht. Wenn man nichts übergibt wird per Default ein sicheres Kennwort generiert.
Re: Zufälliges Passwort in Python3
Verfasst: Sonntag 4. Oktober 2020, 19:31
von noisefloor
Hallo,
aber sicher
Code: Alles auswählen
def generate_password(password_length=10, letters=False, digits=False, special=False)
Wenn die benannten Argumente alle `False` sind, tut die Funktion so, als wären alle `True`. Das ist... sagen wir mal sehr unerwartet. Die drehst die Logik dann einfach um. Wenn alles `True` wäre, dann würde die Funktion ohne Argumente aufgerufen das machen, was sie jetzt macht.
Gruß, noisefloor
Re: Zufälliges Passwort in Python3
Verfasst: Sonntag 4. Oktober 2020, 21:34
von sparrow
@mp1337: Und Oder anders ausgedrückt: Wenn ich explezit weder Buchstaben, Zahlen noch Sonderzeichen haben will: Warum bekomme ich dann ein Passwort?
Ich würde übrigens noch ändern, dass das Vorkommen von bestimmten Elementen im Passwort nicht nur möglich sondern auch sichergestellt ist. Im Moment könnte auch ein Passwort generiert werden, dass nur aus Buchstaben besteht, obwohl auch Zahlen gewollt sind.
Re: Zufälliges Passwort in Python3
Verfasst: Montag 5. Oktober 2020, 18:12
von rennmaus
Hi,
Ich habe auch mal ein bisschen rumprobiert und dabei ist das hier rausgekommen (Vielleicht ein bisschen zu simpel aber wenn er nicht gut ist, ist ja auch nicht schlimm

)
Code: Alles auswählen
import random
Letters='QqWwEeRrTtZzUuIiOoPpÜüAaSsDdFfGgHhJjKkLlÖöÄäYyXxCcVvBbNnMm'
Zahlen='123456789'
Sonder='ß?!§$%&#*<>°'
Länge=input("Wie sicher soll das Passwort sein? Stufe 1,2 oder 3?")
if Länge=='3':
for i in range(6):
B=random.choice(Letters)
Z=random.choice(Zahlen)
S=random.choice(Sonder)
print(B,Z,S)
if Länge == '2':
for i in range(4):
B=random.choice(Letters)
Z=random.choice(Zahlen)
S=random.choice(Sonder)
print(B,Z,S)
if Länge == '1':
for i in range(2):
B=random.choice(Letters)
Z=random.choice(Zahlen)
S=random.choice(Sonder)
print(B,Z,S)
Bin übrigens auch Neuling

...
Mfg
Christian
Re: Zufälliges Passwort in Python3
Verfasst: Montag 5. Oktober 2020, 18:48
von snafu
Die Anzahl der Schleifendurchläufe könntest du auch mathematisch ausdrücken: range(int(stufe) * 2). Dann brauchst du nur eine Schleife. Und anstatt mehrere print()-Ausgaben hintereinander zu machen, würde man die Zeichen in einer Liste sammeln und dann via join() ausliefern.
Re: Zufälliges Passwort in Python3
Verfasst: Montag 5. Oktober 2020, 19:13
von Sirius3
Konstanten schreibt man komplett gross, Variablen komplett klein. Programmierer sind faul, daher mögen sie es nicht, wenn sie Code kopieren, sondern drücken das lieber durch eine einfache Formel aus:
Code: Alles auswählen
import random
LETTERS = 'QqWwEeRrTtZzUuIiOoPpÜüAaSsDdFfGgHhJjKkLlÖöÄäYyXxCcVvBbNnMm'
DIGITS = '123456789'
OTHERS ='ß?!§$%&#*<>°'
level = int(input("Wie sicher soll das Passwort sein? Stufe 1,2 oder 3?"))
length = level * 2
for _ in range(length):
letter = random.choice(LETTERS)
digit = random.choice(DIGITS)
other = random.choice(OTHERS)
print(letter, digit, other)
Warum gibt es keine Passwörter mit 0?
Re: Zufälliges Passwort in Python3
Verfasst: Montag 5. Oktober 2020, 19:22
von rennmaus
Oh, stimmt xD
Re: Zufälliges Passwort in Python3
Verfasst: Dienstag 6. Oktober 2020, 23:51
von LeSchakal
Du könntest natürlich auch aus jeder gewünschten Gruppe ein zufälliges Element wählen, danach die restlichen Elemente mit random.choices finden und wenn du dann noch die beiden Listen zusammenmischt (mit Hilfe von random.shuffle), kann auch niemand mehr eine Ordnung erkennen.
Dann brauchst du gar keine Schleife.