Seite 1 von 3

Passwort abfrage

Verfasst: Dienstag 7. Oktober 2008, 16:46
von Rootmentor
So habe jetzt mal was cooles zustande gebracht x)

Code: Alles auswählen

class pwabfrage(object):
    def __init__ (self):
        pw = "Superpw"
        usertext = raw_input("Enter password:")
        if usertext == pw:
            print ":Youre logged in:"
        else:
            print ":Password wrong , Youre not logged in:"
            

pwabfrage()


Ähm kann ich da noch einbauen das das Passwort was man eingibt in ****** oder ###### also nicht sichtbar wird?

danke für eure hilfe 8)

Verfasst: Dienstag 7. Oktober 2008, 16:53
von Trundle
Python bringt bereits das [mod]getpass[/mod]-Modul mit sich.

Verfasst: Dienstag 7. Oktober 2008, 16:59
von Zap
Gibt es einen Grund das "pwabfrage" ein Objekt und keine Funktion ist?

Verfasst: Dienstag 7. Oktober 2008, 17:38
von Rootmentor
so stands im tutorial
was kann man denn noch daraus machen und was hat das für auswirkungen?
naja ich wollt halt noch ne klasse daraus machen.

Verfasst: Dienstag 7. Oktober 2008, 18:29
von Qubit
Rootmentor hat geschrieben:so stands im tutorial
was kann man denn noch daraus machen und was hat das für auswirkungen?
naja ich wollt halt noch ne klasse daraus machen.
Passwörter in Klartext sind ein No-Go ;-)
Wenn, dann besser in folgender Richtung (nur als Denkanstoss):

Code: Alles auswählen

import md5
def getPassword(pwstr=''):
	pw = ']1\x83L\xb0\x184Pn\x9e\x97\xd7\x97\x1ey3'
	if pw == md5.md5(pwstr).digest():
		print ":Youre logged in:"
	else:
		print ":Password wrong , Youre not logged in:"

Verfasst: Dienstag 7. Oktober 2008, 23:37
von BlackJack
@Rootmentor: In welchem Tutorial steht denn so ein Quatsch? Ausser in Java-Tutorials. ;-)

Es ist nicht die Frage wie kompliziert man das noch machen könnte, sondern dass man die einfachste Möglichkeit nimmt, das umzusetzen und aus der Funktion nicht künstlich eine völlig unnötige Klasse bastelt. Zumal man hier nicht einmal etwas zurück geben kann.

Verfasst: Mittwoch 8. Oktober 2008, 15:25
von Rootmentor
ich programmier halt noch nicht lange und ich wollt einfach mal ne klasse erstellen weil ich noch nie was damit gemacht habe. Habe immer nur mit funktionen gearbeitet.
Ja diese md5 sache wollte ich heute in angriff nehmen xD
eine frage hab ich noch ....
Wofür steht dieses.

class irgendwas(object)

hab gesehn da können noch andere sachen drinstehn.
Is das einfach nur eine kleiner beschreibung für python was diese klasse ist?
Oder wie sie behandelt wird?
oder was auch immer?

Danke , euer Rootmentor

Verfasst: Mittwoch 8. Oktober 2008, 16:35
von cofi
Nein das ist keine Beschreibung. Das ist Pythons Vererbungsmechanismus.
Wenn du von `object' erbst hast du eine New-Style-Klasse und kannst damit bestimmte Eigenschaften benutzen - nicht davon zu erben ist auch ein Auslaufmodell ;).

Verfasst: Mittwoch 8. Oktober 2008, 16:47
von Rootmentor
also sozusagen die klasse erweitern?
die alten Funktionen behalten , und dann neue hinzufügen?

Verfasst: Mittwoch 8. Oktober 2008, 16:54
von Hyperion
Inwiefern erweitern?

Wenn Du wirklich mal eigene Klassen designen möchtest (eben z.B. zu Lernwzecken), dann such Dir ein passendes Beispiel dazu! Ein PW abfragen ist nun einmal auch in der Realität eine Funktion.

Denk eben an etwas, das sich durch Daten beschreiben lässt und selber Funktionalität besitzt / besitzen kann, diese zu ändern. Das kannst Du dann versuchen, als Klasse abzubilden.

klassä

Verfasst: Mittwoch 8. Oktober 2008, 16:56
von Rootmentor
Okay zb. string rein -> string rückwärts wieder raus...?

z.B. " string " -> " gnirts "

Könnte man sowas in eine klasse verwandeln xD?

Verfasst: Mittwoch 8. Oktober 2008, 17:04
von Hyperion
Du beschreibst doch grad eine Funktionalität! Wozu sollte man das in eine Klasse verpacken? Und ja, na klar geht das - nur ist es wenig sinnvoll und hilft sicherlich auch nicht weiter, das Konzept von Klassen zu verstehen!

Verfasst: Mittwoch 8. Oktober 2008, 17:05
von Rootmentor
dann erklärs mir :D oder geb mir ne internetseite ._.

Verfasst: Mittwoch 8. Oktober 2008, 17:23
von Lonestar
Rootmentor hat geschrieben:dann erklärs mir :D oder geb mir ne internetseite ._.
ich mag ja wikipedia


http://de.wikibooks.org/wiki/Python_unt ... und_um_OOP
das hab ich mir zum kennenlernen angeguckt

vielleicht hilfts ja...

ps: kann es sein das das forum die url des wiki- artikels nich mag?
- ich lass es einfach so stehen

Verfasst: Mittwoch 8. Oktober 2008, 17:32
von Hyperion
Rootmentor hat geschrieben:dann erklärs mir :D
Dann gib mir Geld dafür!
oder geb mir ne internetseite ._.
Die SuFu ist Dein Freund, das wiki, das Python-Tutorial / die Doku, und zu guter letzt ist google das Universaltool schlechthin für solch eine Grundsatzfrage!

Verfasst: Mittwoch 8. Oktober 2008, 17:39
von Rootmentor
ich geb dir code :D
So siehts jetzt aus

Code: Alles auswählen

#!/usr/bin/env python
#Basic md5 password example
# Password ist Superpw

import getpass
import md5

def getPassword(pwstr=''): 
    pw = '\x96\xa1\x9c\xf8T\x04\xf0\xbf\x89\xf07S\x8d\xbb\x0e\xf4' 
    if pw == md5.md5(pwstr).digest(): #digest for plain text
        print ":Youre logged in:" 
    else: 
        print ":Password wrong , Youre not logged in:"
        
userpass =getpass.getpass("Enter password")
getPassword(userpass)

Verfasst: Mittwoch 8. Oktober 2008, 17:42
von Hyperion
Rootmentor hat geschrieben:ich geb dir code :D
Was soll ich damit?

1.) Wo ist denn da eine Klasse?
2.) Es gibt das Python Attribut für die Code-Tags!
3.) Code auf Modulebene sollte man vermeiden.

Verfasst: Mittwoch 8. Oktober 2008, 17:44
von Rootmentor
ich glaub ich bin hier falsch -.-

Verfasst: Mittwoch 8. Oktober 2008, 19:56
von Leonidas
Rootmentor hat geschrieben:dann erklärs mir :D oder geb mir ne internetseite ._.
Objekte repräsentieren Dinge, Funktionen tätigkeiten. Einen String umdrehen ist eine Tätigkeit. Eine Tastatur ist ein Ding (ich habe jetzt extra nicht Apfel gesagt, weil ich ein Objekt nehmen wollte, dass Programmierer mit Sicherheit kennen :) ).

Verfasst: Mittwoch 8. Oktober 2008, 20:39
von BlackJack
Pfff, natürlich kennen die Äpfel. Das sind die Dinger auf diesen überteuerten Designerrechnern. Früher hatten die Äpfel bunte Streifen. :-)