Seite 1 von 1

Passwort Generator

Verfasst: Mittwoch 24. Oktober 2007, 09:53
von beetronic
Hallo Forum,

ich möchte gerne zufällige "pseudo-deutsche" Passwörter generieren, die sich gut buchstabieren und merken lassen, z.B. MEKALO, UNITOG, etc.

Kennt jemand ein Python Modul, das ich dafür nehmen könnte?

Gruss + Dank, BT

Re: Passwort Generator

Verfasst: Mittwoch 24. Oktober 2007, 10:10
von keppla
beetronic hat geschrieben:Kennt jemand ein Python Modul, das ich dafür nehmen könnte?
Ich kenn da keins, aber auf Anhieb sieht das für mich so aus, als ob man dazu nur zufällig Silben aneinanderhängen müsste, was mit den tools in random recht einfach wäre.

Verfasst: Mittwoch 24. Oktober 2007, 10:11
von EnTeQuAk
Hallo beetronic!

Pocoo besitzt eine kleine Funktion, die so etwas kann, zu finden hier

Viel spaß!

Verfasst: Mittwoch 24. Oktober 2007, 13:47
von beetronic
Ja, das sieht gut aus, sollte für meine Zwecke reichen.

Vielen Dank, BT
EnTeQuAk hat geschrieben: Pocoo besitzt eine kleine Funktion, die so etwas kann, zu finden hier

Verfasst: Donnerstag 25. Oktober 2007, 14:23
von Y0Gi
Ich kann da ebenfalls was als Inspiration anbieten: http://homework.nwsnet.de/releases/b9d3 ... -generator (neue URL)

Verfasst: Donnerstag 25. Oktober 2007, 14:55
von beetronic
Y0Gi hat geschrieben:Ich kann da ebenfalls was als Inspiration anbieten: http://homework.nwsnet.de/products/57
Danke. Die Routine zum Erzeugen des Passwortes ist schön klein und den ganzen GUI Kram lass ich einfach weg.

Gruss, BT

Verfasst: Donnerstag 25. Oktober 2007, 19:48
von pyStyler
Y0Gi hat geschrieben:Ich kann da ebenfalls was als Inspiration anbieten: http://homework.nwsnet.de/products/57
der ist zwar nicht schlecht, aber die Zahlen werden leider immer nur hinten angehängt

hier mal ein versuch von mir

Code: Alles auswählen

# -*- coding: utf-8 -*-

import random 
import Tkinter

root = Tkinter.Tk()

textvar = Tkinter.StringVar()

liste = []

def _scrolledEntry(*args):
        op, howMany = args[0], args[1]
        if op == "scroll":
            units  =  args[2]
            entry.xview_scroll ( howMany, units )
        elif op == "moveto":
            entry.xview_moveto ( howMany )
    
def createPasswd():
    zahlen = '1234567890'
    zeichen = 'AEIOUaeioubcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ'
    return ''.join([random.choice( zahlen if i%2 else zeichen ) for i in range(7)])
    
def getNewPasswd():
    pw = createPasswd()
    textvar.set( pw )
    liste.append( pw )
        
def createTk():
    global entry

    scb = Tkinter.Scrollbar(root, orient='horizontal', command=_scrolledEntry)
    scb.pack( fill=Tkinter.X )
    fnt = '{Lucida Sans Typewriter} 28 bold'
    entry = Tkinter.Entry(root, textvariable=textvar,
                relief=Tkinter.GROOVE,
                bd=1,
                background='#cdcc71',
                font=fnt)
    entry.pack(fill=Tkinter.X)
    entry["xscrollcommand"] = scb.set
    b = Tkinter.Button(root,  text='password', command=getNewPasswd)
    b.pack(fill=Tkinter.X, pady=10)
    

def _main():
    createTk()
    root.geometry('500x110')
    root.mainloop()
    
if __name__=='__main__':
    _main()
Gruss
pyStyler

Verfasst: Donnerstag 25. Oktober 2007, 20:03
von Y0Gi
pyStyler hat geschrieben:
Y0Gi hat geschrieben:Ich kann da ebenfalls was als Inspiration anbieten: http://homework.nwsnet.de/products/57
der ist zwar nicht schlecht, aber die Zahlen werden leider immer nur hinten angehängt
Nun, man kann nach diversen Schemata Passwörter zusammen setzen. Da könnte man z.B. eine Zahl am Anfang und zwei in der Mitte haben wollen, oder jeweils drei durch Sonderzeichen getrennte Segmente... Meine Lösung ist sicher nicht der Weisheit letzter Schluss, aber getreu dem KISS-Prinzip habe ich hier nicht den ultimativen Hammer für alle Anforderungen bauen wollen. Wenn man was bestimmtes haben möchte, lässt sich das - gerade in Python - leicht anpassen oder nachbauen.

Übrigens verwende ich in meinem Code ``join()`` und füge optional Strings zusammen. Nach meinem aktuellen Wissen würde ich da Gebrauch von Generatoren machen (und PEP 8-konformen Bezeichnern). Soweit ich mich erinnere war jene Lösung allerdings die effizienteste (Generatoren außen vor gelassen).