Passwort abfragen befor das Programm gestartet wird

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.
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

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?
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

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

Was genau soll die Passwortabfrage bringen? Also was steckt dahinter? (DB-Connection o.ä.?)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

/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.
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

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
Zuletzt geändert von nomnom am Donnerstag 4. November 2010, 21:15, insgesamt 1-mal geändert.
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

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)
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
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!?
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

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-
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

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.
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

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).
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

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.
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

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)
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

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.)
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

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!
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

OK, noch ein X-tes mal:

Das Programm soll warten bis die Funktion passwort() fertig ist.
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

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?
.robert
User
Beiträge: 274
Registriert: Mittwoch 25. April 2007, 17:59

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?
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

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...
the more they change the more they stay the same
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

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?
Zuletzt geändert von Py-Prog am Freitag 5. November 2010, 19:18, insgesamt 1-mal geändert.
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
Antworten