Passwort abfrage

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Rootmentor
User
Beiträge: 54
Registriert: Sonntag 17. August 2008, 18:26
Wohnort: Lingen
Kontaktdaten:

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)
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Python bringt bereits das [mod]getpass[/mod]-Modul mit sich.
"Der Dumme erwartet viel. Der Denkende sagt wenig." ("Herr Keuner" -- Bertolt Brecht)
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Gibt es einen Grund das "pwabfrage" ein Objekt und keine Funktion ist?
Rootmentor
User
Beiträge: 54
Registriert: Sonntag 17. August 2008, 18:26
Wohnort: Lingen
Kontaktdaten:

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.
Qubit
User
Beiträge: 128
Registriert: Dienstag 7. Oktober 2008, 09:07

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:"
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.
Rootmentor
User
Beiträge: 54
Registriert: Sonntag 17. August 2008, 18:26
Wohnort: Lingen
Kontaktdaten:

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
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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 ;).
Rootmentor
User
Beiträge: 54
Registriert: Sonntag 17. August 2008, 18:26
Wohnort: Lingen
Kontaktdaten:

also sozusagen die klasse erweitern?
die alten Funktionen behalten , und dann neue hinzufügen?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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.
Rootmentor
User
Beiträge: 54
Registriert: Sonntag 17. August 2008, 18:26
Wohnort: Lingen
Kontaktdaten:

Okay zb. string rein -> string rückwärts wieder raus...?

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

Könnte man sowas in eine klasse verwandeln xD?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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!
Rootmentor
User
Beiträge: 54
Registriert: Sonntag 17. August 2008, 18:26
Wohnort: Lingen
Kontaktdaten:

dann erklärs mir :D oder geb mir ne internetseite ._.
Lonestar
User
Beiträge: 147
Registriert: Samstag 9. August 2008, 08:31

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
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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!
Rootmentor
User
Beiträge: 54
Registriert: Sonntag 17. August 2008, 18:26
Wohnort: Lingen
Kontaktdaten:

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)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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.
Rootmentor
User
Beiträge: 54
Registriert: Sonntag 17. August 2008, 18:26
Wohnort: Lingen
Kontaktdaten:

ich glaub ich bin hier falsch -.-
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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 :) ).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

Pfff, natürlich kennen die Äpfel. Das sind die Dinger auf diesen überteuerten Designerrechnern. Früher hatten die Äpfel bunte Streifen. :-)
Antworten