Passwort abfragen befor das Programm gestartet wird
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.
Wer Rechtschreibfehler findet darf sie behalten.
- 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
assert encoding_kapiert
Eine (sau dumme) frage ist es sinvoll den Ganzen Code als eine Funktion zu verwenden?/me hat geschrieben:So langsam sollten dir Funktionen (def ...) aber schon mal über den Weg gelaufen sein.Py-Prog hat geschrieben:Und ich hab keinen Bock den Ganzen Code in die if abrage zusetzen.
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.Hyperion hat geschrieben:Was genau soll die Passwortabfrage bringen? Also was steckt dahinter? (DB-Connection o.ä.?)
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
Wer Rechtschreibfehler findet darf sie behalten.
Ich würde die so machen:
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
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
Da wird zwar das Programm schon gestartet, aber das ist ja nicht schlimm.

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.
War doch klar das soetwas kommt.nomnom hat geschrieben:Ich würde die so machen:
EDIT: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
Da wird zwar das Programm schon gestartet, aber das ist ja nicht schlimm.(also der restliche Code wird ja nicht ausgeführt)

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.
Wer Rechtschreibfehler findet darf sie behalten.
@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!?
Also der Code hier funktioniert prima bei mir:
Da wird erst das Passwort abgefragt, dann das Programm gestartet-
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)
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 hat geschrieben: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.Hyperion hat geschrieben:Was genau soll die Passwortabfrage bringen? Also was steckt dahinter? (DB-Connection o.ä.?)
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).derdon hat geschrieben: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 hat geschrieben: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.Hyperion hat geschrieben:Was genau soll die Passwortabfrage bringen? Also was steckt dahinter? (DB-Connection o.ä.?)
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
Wer Rechtschreibfehler findet darf sie behalten.
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.nomnom hat geschrieben:Also der Code hier funktioniert prima bei mir:Da wird erst das Passwort abgefragt, dann das Programm gestartet-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)
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.
Wer Rechtschreibfehler findet darf sie behalten.
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.)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)
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
Wer Rechtschreibfehler findet darf sie behalten.
Quellcode wäre nützlichPy-Prog hat geschrieben:OK, noch ein X-tes mal:
Das Programm soll warten bis die Funktion passwort() fertig ist.

Es wurde dir geholfen...Lern du dich erstmal so auszudrücken, dass man versteht was du meinst...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.)
the more they change the more they stay the same
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.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.)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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:Leonidas hat geschrieben: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.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.)
Ich würde gerne eine Passwort abfage in ein Programm einbauen, wie krieg ich sowas hin?
Wieso sollte einer von euch das Passwort brauchen, das hat man doch in 5 minuten hehackt.(Und das ist schon übertrieben.)nomnom hat geschrieben:Quellcode wäre nützlichAber du willst ihn bestimmt nicht zeigen, weil du dein Passwort als Klartext im Code stehen hast, nicht wahr?
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)
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.
Wer Rechtschreibfehler findet darf sie behalten.