passwortabfrage

Code-Stücke können hier veröffentlicht werden.
lunar

@smodo: Quelltext als Screenshot? Nicht Dein Ernst?! Erwartest Du jetzt von uns, dass wir den abtippen, um ihn ggf. auszuprobieren? Kopiere Deinen Quelltext doch bitte einfach in Deinen Beitrag, oder in ein Pastebin wie http://paste.pocoo.org
smodo
User
Beiträge: 49
Registriert: Dienstag 18. August 2009, 23:45

hehe jo sorry, dachte eig. die meisten schauen sowieso bei so kleinem zeugs nur drüber :) aber verstehe dich, sorry :)

programm:

Code: Alles auswählen

import userlist
import hashlib
import os
import getpass
import time
import sys

def benutzer(user): # Die Benutzer_User_eingabe wird umgewandelt !
    return hashlib.md5(user).hexdigest()
 
def pin(password):  # Die Benutzer_Passwort_eingabe wird umgewandelt !
    return hashlib.md5(password).hexdigest()

def main():
    os.system("clear")

    print "\n---{ Der Torwächter v0.4 }---"
    print "\nZerstöre den Torwächter mit (q oder Q)\n"
    user = raw_input("\nWer stört.. zu später Stund: ")

    if user in ("Q", "q"):    #evtl. Beenden ?
        sys.exit()
    else:
        md5user = benutzer(user)
        os.system("clear")
        print "\nSei gegrüsst %s\n" % (user)

    pinin = pin(getpass.getpass("\nSo sage mir dein {Zauberwort}: ")) #passwort eintippen !

                    # Ab hier beginnt die überprüfung !
    if md5user in userlist.users:
        if pinin == userlist.users[md5user]:
            os.system("clear")
            print "Viel Spass - %s" % (user)
            time.sleep(3)
        else:
            os.system("clear")
            print "Passwort Flasch !"
    else:
        os.system("clear")
        print "%s Existiert nicht !" % (user)
    
if __name__ == '__main__':
    main()    

und hier im gleichen ordner:

Code: Alles auswählen

# nach dem schema: ("username":"passwort")

users = {
         "29279a52c6d071bcf63f446d665c077e":"b667a962b6939e87f352a14012a4fa01",
         "83e1cc2744818f37bfbf54633883b0c8":"f379eaf3c831b04de153469d1bec345e"
        }
Der Zynismus ist meine Rüstung, der Sarkasmus mein Schwert und die Ironie mein Schild.
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Den Usernamen brauchst du nicht als md5 speichern, der soll ja nicht geheim bleiben. os.system("clear") ist böse, ich als einer der die Konsole viel benutzt würde das Skript verfluchen, dass mir "clear" aufruft.

@Lunar: das spart dir das Installieren einer IDE :twisted:
the more they change the more they stay the same
smodo
User
Beiträge: 49
Registriert: Dienstag 18. August 2009, 23:45

wie kann ich den sozusagen, die konsole putzen, wen ich os.system nicht benutzen sollte ? und ja ich weiss wiso, man kann nach os.system("clear") einen befehl anhängen. ABer wie kann ich das anderst machen ?
Der Zynismus ist meine Rüstung, der Sarkasmus mein Schwert und die Ironie mein Schild.
BlackJack

@smodo: Es geht ja nicht nur darum `os.system()` nicht zu benutzen, sondern darum die Konsole nicht zu leeren. Du weisst ja nicht was Du da alles löschst was der Benutzer vielleicht gerne noch gehabt hätte. „Vollbildschirm“-Programme für die Konsole stellen in der Regel hinterher den alten Inhalt wieder her. Dann wird es aber etwas komplexer als einfach nur ein externes Programm auf zu rufen. Das geht zum Beispiel mit dem `curses`-Modul aus der Standardbibliothek oder dem darauf aufbauenden `urwid` wenn es auch etwas externes sein darf.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Was die Ersetzung von `os.system` angeht: `subprocess.call(['clear'])`

http://docs.python.org/library/subprocess.html

Ich hab es aber auch lieber, wenn Programme ihre Finger von meinem Terminal lassen.
Antworten