Seite 1 von 3

Passwort abfragen befor das Programm gestartet wird

Verfasst: Mittwoch 3. November 2010, 22:28
von Py-Prog
Das Problem ist ich will befor ich das eigentliche Programm starte eine Passwort abfrage machen. Das mit der Abfrage geht eigentlich, aber was bringt mir die Abfrage wenn das Programm gleich mit started? Und ich hab keinen Bock den Ganzen Code in die if abrage zusetzen. Wie krieg ich das hin das erst die Abfrage kommt und dan das Programm fenster bzw. das Programm warted bis die Abfrage fertig ist?

Re: Passwort abfragen befor das Programm gestartet wird

Verfasst: Mittwoch 3. November 2010, 22:46
von /me
Py-Prog hat geschrieben:Und ich hab keinen Bock den Ganzen Code in die if abrage zusetzen.
So langsam sollten dir Funktionen (def ...) aber schon mal über den Weg gelaufen sein.

Re: Passwort abfragen befor das Programm gestartet wird

Verfasst: Mittwoch 3. November 2010, 22:50
von Hyperion
Was genau soll die Passwortabfrage bringen? Also was steckt dahinter? (DB-Connection o.ä.?)

Re: Passwort abfragen befor das Programm gestartet wird

Verfasst: Donnerstag 4. November 2010, 20:55
von Py-Prog
/me hat geschrieben:
Py-Prog hat geschrieben:Und ich hab keinen Bock den Ganzen Code in die if abrage zusetzen.
So langsam sollten dir Funktionen (def ...) aber schon mal über den Weg gelaufen sein.
Eine (sau dumme) frage ist es sinvoll den Ganzen Code als eine Funktion zu verwenden?
Hyperion hat geschrieben:Was genau soll die Passwortabfrage bringen? Also was steckt dahinter? (DB-Connection o.ä.?)
Muss alles etwas 'bringen', wenn du damit darauf hinauswillst das es eigentlich nichts bringt weil das ein Anfänger der nur die 'Grundlegenden dinge der Grundlagen' kann den Schutz umgehen kann.

Re: Passwort abfragen befor das Programm gestartet wird

Verfasst: Donnerstag 4. November 2010, 21:05
von nomnom
Ich würde die so machen:

Code: Alles auswählen

import getpass

password = getpass.getpass() # save the password in the variable password
if not (password == '*password*'):
    exit()
for i in range(1, 4): # do whatever you want
    print i
EDIT:
Da wird zwar das Programm schon gestartet, aber das ist ja nicht schlimm. ;) (also der restliche Code wird ja nicht ausgeführt)

EDIT #2:
Und Sicherheit gibt es noch mit ``hashlib`` und MD5 ;)

Code: Alles auswählen

import getpass
import hashlib

md5_password = "b8da599513dffb80a0a2baacfa1c8157"
password = getpass.getpass() # save the password in the variable password
if not (hashlib.md5(password).hexdigest() == md5_password):
    exit()
for i in range(1, 4):
    print i

Re: Passwort abfragen befor das Programm gestartet wird

Verfasst: Donnerstag 4. November 2010, 21:10
von Py-Prog
nomnom hat geschrieben:Ich würde die so machen:

Code: Alles auswählen

import getpass

password = getpass.getpass() # save the password in the variable password
if not (password == '*password*'):
    exit()
for i in range(1, 4): # do whatever you want
    print i
EDIT:
Da wird zwar das Programm schon gestartet, aber das ist ja nicht schlimm. ;) (also der restliche Code wird ja nicht ausgeführt)
War doch klar das soetwas kommt. :roll:
Ich hab die Funktion ja schon fertig.(Mit GUI(Graphical user interface))
Und dann geht das Passwort fenster auf und das Programm fenster, gleichzeitig. (Und das ist logischer weiße schlecht weil da die Ganze Abfrage nichts bringt)

Re: Passwort abfragen befor das Programm gestartet wird

Verfasst: Donnerstag 4. November 2010, 21:17
von BlackJack
@Py-Prog: Wenn Du die Rahmenbedingungen nicht erwähnst ist es natürlich klar, dass die Gefahr besteht, dass Du eine Antwort für die Konsole bekommst wenn Du im "Allgemeine Fragen"-Forum postest. Was hattest Du denn erwartet!?

Re: Passwort abfragen befor das Programm gestartet wird

Verfasst: Donnerstag 4. November 2010, 21:18
von nomnom
Also der Code hier funktioniert prima bei mir:

Code: Alles auswählen

import getpass
import hashlib
import webbrowser
import Tkinter
import tkSimpleDialog

md5_password = "b8da599513dffb80a0a2baacfa1c8157"
password = getpass.getpass() # save the password in the variable password
if not (hashlib.md5(password).hexdigest() == md5_password):
    print "Wrong password!"
    exit()

root = Tkinter.Tk()
root.withdraw()

url = tkSimpleDialog.askstring('Youtube-Hack',
      'Bitte Video-ID oder URL eingeben: ')
url = 'http://www.youtube.com/v/' + url.replace(
      'http://www.youtube.com/watch?v=', '')
webbrowser.open(url)
Da wird erst das Passwort abgefragt, dann das Programm gestartet-

Re: Passwort abfragen befor das Programm gestartet wird

Verfasst: Donnerstag 4. November 2010, 21:20
von derdon
Py-Prog hat geschrieben:
Hyperion hat geschrieben:Was genau soll die Passwortabfrage bringen? Also was steckt dahinter? (DB-Connection o.ä.?)
Muss alles etwas 'bringen', wenn du damit darauf hinauswillst das es eigentlich nichts bringt weil das ein Anfänger der nur die 'Grundlegenden dinge der Grundlagen' kann den Schutz umgehen kann.
Deine Antwort verstehe ich nicht (könnte an der Grammatik liegen). Um was für einen Schutz geht es? Vor was willst du wen schützen? Die Frage von Hyperion ist übrigens berechtigt und ist nicht dazu da, dich zu nerven sondern um dir zu helfen.

Re: Passwort abfragen befor das Programm gestartet wird

Verfasst: Donnerstag 4. November 2010, 21:30
von Py-Prog
derdon hat geschrieben:
Py-Prog hat geschrieben:
Hyperion hat geschrieben:Was genau soll die Passwortabfrage bringen? Also was steckt dahinter? (DB-Connection o.ä.?)
Muss alles etwas 'bringen', wenn du damit darauf hinauswillst das es eigentlich nichts bringt weil das ein Anfänger der nur die 'Grundlegenden dinge der Grundlagen' kann den Schutz umgehen kann.
Deine Antwort verstehe ich nicht (könnte an der Grammatik liegen). Um was für einen Schutz geht es? Vor was willst du wen schützen? Die Frage von Hyperion ist übrigens berechtigt und ist nicht dazu da, dich zu nerven sondern um dir zu helfen.
Ich will damit ein Programm schützen mit dem ich einstellungen für ein anderes Programm vornehme.(Wohl besser will ist noch nicht ganz fertig).

Re: Passwort abfragen befor das Programm gestartet wird

Verfasst: Donnerstag 4. November 2010, 21:36
von Py-Prog
nomnom hat geschrieben:Also der Code hier funktioniert prima bei mir:

Code: Alles auswählen

import getpass
import hashlib
import webbrowser
import Tkinter
import tkSimpleDialog

md5_password = "b8da599513dffb80a0a2baacfa1c8157"
password = getpass.getpass() # save the password in the variable password
if not (hashlib.md5(password).hexdigest() == md5_password):
    print "Wrong password!"
    exit()

root = Tkinter.Tk()
root.withdraw()

url = tkSimpleDialog.askstring('Youtube-Hack',
      'Bitte Video-ID oder URL eingeben: ')
url = 'http://www.youtube.com/v/' + url.replace(
      'http://www.youtube.com/watch?v=', '')
webbrowser.open(url)
Da wird erst das Passwort abgefragt, dann das Programm gestartet-
Erstens glaubst du wirklich das das hir passt wenn es hier nicht um die Konsole, und auch nicht um wie klrieg ich das hin, sondern wie 'warted' der rest des Programms.

Zweitens wieso sollte ich mein eigenes Programm davor schützen das es jemand ausser mir hernimmt? Wenn ich das wollte hätte ich es doch nicht hochgestellt.

Re: Passwort abfragen befor das Programm gestartet wird

Verfasst: Donnerstag 4. November 2010, 21:41
von nomnom
Also bei mir funktioniert es auch mit nem tkSimpleDialog (Python 2.6):

Code: Alles auswählen

import getpass
import hashlib
import webbrowser
import Tkinter
import tkSimpleDialog

root = Tkinter.Tk()
root.withdraw()

md5_password = "b8da599513dffb80a0a2baacfa1c8157"
password = tkSimpleDialog.askstring('Password dialog', '', show='*')
# save the password in the variable password
if not (hashlib.md5(password).hexdigest() == md5_password):
    print "Wrong password!"
    exit()

url = tkSimpleDialog.askstring('Youtube-Hack',
      'Bitte Video-ID oder URL eingeben: ')
url = 'http://www.youtube.com/v/' + url.replace(
      'http://www.youtube.com/watch?v=', '')
webbrowser.open(url)

Re: Passwort abfragen befor das Programm gestartet wird

Verfasst: Donnerstag 4. November 2010, 21:44
von Py-Prog
nomnom hat geschrieben:Also bei mir funktioniert es auch mit nem tkSimpleDialog (Python 2.6):

Code: Alles auswählen

import getpass
import hashlib
import webbrowser
import Tkinter
import tkSimpleDialog

root = Tkinter.Tk()
root.withdraw()

md5_password = "b8da599513dffb80a0a2baacfa1c8157"
password = tkSimpleDialog.askstring('Password dialog', '', show='*')
# save the password in the variable password
if not (hashlib.md5(password).hexdigest() == md5_password):
    print "Wrong password!"
    exit()

url = tkSimpleDialog.askstring('Youtube-Hack',
      'Bitte Video-ID oder URL eingeben: ')
url = 'http://www.youtube.com/v/' + url.replace(
      'http://www.youtube.com/watch?v=', '')
webbrowser.open(url)
Ja sag mal wie **** bist du? Wie oft muss ich dir noch sagen das deine vorschläge sinnlos sind, auch wenn sie funktionieren. (Ich weiß es ist nur net gemeint.)

Re: Passwort abfragen befor das Programm gestartet wird

Verfasst: Donnerstag 4. November 2010, 21:47
von nomnom
Py-Prog hat geschrieben:Ja sag mal wie **** bist du? Wie oft muss ich dir noch sagen das deine vorschläge sinnlos sind, auch wenn sie funktionieren.
^^ Schreib doch einfach mal klar und deutlich was du machen willst!

Re: Passwort abfragen befor das Programm gestartet wird

Verfasst: Donnerstag 4. November 2010, 21:56
von Py-Prog
OK, noch ein X-tes mal:

Das Programm soll warten bis die Funktion passwort() fertig ist.

Re: Passwort abfragen befor das Programm gestartet wird

Verfasst: Donnerstag 4. November 2010, 22:01
von nomnom
Py-Prog hat geschrieben:OK, noch ein X-tes mal:

Das Programm soll warten bis die Funktion passwort() fertig ist.
Quellcode wäre nützlich ;) Aber du willst ihn bestimmt nicht zeigen, weil du dein Passwort als Klartext im Code stehen hast, nicht wahr?

Re: Passwort abfragen befor das Programm gestartet wird

Verfasst: Donnerstag 4. November 2010, 22:02
von .robert
Py-Prog hat geschrieben:OK, noch ein X-tes mal:

Das Programm soll warten bis die Funktion passwort() fertig ist.
Das ist jetzt wirklich kein Spaß um dich zu ärgern, sondern ernst gemeint: warum?

Re: Passwort abfragen befor das Programm gestartet wird

Verfasst: Donnerstag 4. November 2010, 23:14
von Dav1d
Py-Prog hat geschrieben:Ja sag mal wie **** bist du? Wie oft muss ich dir noch sagen das deine vorschläge sinnlos sind, auch wenn sie funktionieren. (Ich weiß es ist nur net gemeint.)
Es wurde dir geholfen...Lern du dich erstmal so auszudrücken, dass man versteht was du meinst...

Re: Passwort abfragen befor das Programm gestartet wird

Verfasst: Freitag 5. November 2010, 09:23
von Leonidas
Py-Prog hat geschrieben:Ja sag mal wie **** bist du? Wie oft muss ich dir noch sagen das deine vorschläge sinnlos sind, auch wenn sie funktionieren. (Ich weiß es ist nur net gemeint.)
Wenn du weißt dass es nett gemeint ist, warum fällst du denn Leute die dir helfen so an? Also nach so 'ner Aussage hätt ich schon wenig lust dir nochmal zu helfen.

Re: Passwort abfragen befor das Programm gestartet wird

Verfasst: Freitag 5. November 2010, 19:05
von Py-Prog
Leonidas hat geschrieben:
Py-Prog hat geschrieben:Ja sag mal wie **** bist du? Wie oft muss ich dir noch sagen das deine vorschläge sinnlos sind, auch wenn sie funktionieren. (Ich weiß es ist nur net gemeint.)
Wenn du weißt dass es nett gemeint ist, warum fällst du denn Leute die dir helfen so an? Also nach so 'ner Aussage hätt ich schon wenig lust dir nochmal zu helfen.
Wieso wohl es sollte jeden schon längst klar sein dass es nicht darum geht wie mache ich eine Passwort abfrage. Sonst Hätte ich am anfang ja geschrieben:

Ich würde gerne eine Passwort abfage in ein Programm einbauen, wie krieg ich sowas hin?
nomnom hat geschrieben:Quellcode wäre nützlich ;) Aber du willst ihn bestimmt nicht zeigen, weil du dein Passwort als Klartext im Code stehen hast, nicht wahr?
Wieso sollte einer von euch das Passwort brauchen, das hat man doch in 5 minuten hehackt.(Und das ist schon übertrieben.)

Code: Alles auswählen

def passwort():
   global passwortdb
   sicherheitsabfrage=tkinter.Tk()
   sicherheitsabfrage.title('Sicherheisabfrage')
   sicherheitsabfrage.geometry('230x100')
   tkinter.Label(sicherheitsabfrage, text='Name: ', pady=10).grid(row=0, column=0)
   tkinter.Label(sicherheitsabfrage, text='Passwort: ', pady=10).grid(row=1, column=0)
   Name=tkinter.Entry(sicherheitsabfrage)
   Passwort=tkinter.Entry(sicherheitsabfrage, show="*")
   Name.grid(row=0, column=1)
   Passwort.grid(row=1, column=1)
   def OK():
      name=Name.get()
      passwort=Passwort.get()
      if (name in passwortdb and passwortdb[name] == passwort):
         sicherheitsabfrage.destroy()
      else:
         Name.delete(0, len(Name.get()))
         Passwort.delete(0, len(Passwort.get()))
   button1=tkinter.Button(sicherheitsabfrage, command=OK, text='OK').grid(row=2, column=1)
Da hast du den Code, aber musste ich das Passwort reinschreiben?