Entwickler-Ecke
Sonstiges (.NET) - Konsolenanwendun Password schützen
JoKaBo - Do 13.01.11 21:31
Titel: Konsolenanwendun Password schützen
Hallo,
Ich wollte eine Konsolenanwendung Passwort schützen wenn das richtige Passwort eingegeben wird
werden die anderen Textstellen angezeigt wenn nicht wird „Error“ angezeigt.
Ich habe schoneinen Code aber der ist nicht ganz so wie ich ihn mir vorstelle
[
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39:
| Console.Write("Password (max 5 Zeichen):"); string Password = "hh"; ConsoleKeyInfo Key;
do { Key = Console.ReadKey();
if (Key.Key == ConsoleKey.Backspace) { if (Password.Length != 0) { Console.Write(' '); Console.SetCursorPosition(Console.CursorLeft - 1, Console.CursorTop); Password = Password.Substring(0, Password.Length - 1); } } else if (Key.Key != ConsoleKey.Enter) { Console.SetCursorPosition(Console.CursorLeft - 1, Console.CursorTop);
if (Convert.ToInt32(Key.KeyChar) != 0) { Console.Write('*'); } } }
while (Key.Key != ConsoleKey.Enter && Password.Length < 5);
Console.WriteLine(); Console.WriteLine(Password); Console.WriteLine("\t daten Von JoKaBo"); Console.WriteLine("\t Name: Jonah"); Console.ReadLine();
Console.WriteLine("\n Drücken sie eine Belibige Taste..." );[/quote] |
Ralf Jansen - Do 13.01.11 21:36
Du hast vergessen eine Frage zu stellen.
JoKaBo - Do 13.01.11 21:46
Sorry Ich wollte wissen wie ich es mache das es passwort geschützt ist.
und wenn es falsch ist das dort "error" steht, und vieleicht was an meinem code falsch ist.
Delete - Do 13.01.11 21:57
Und wo vergleichst du das Passwort mit der Eingabe? Der gepostet Code zeugt nur, wie du die Eingabe durch Sternchen ersetzt.
JoKaBo - Do 13.01.11 22:01
weiss nicht habe den code aus büchern und internet dess halb wollte ich ja wissen wie es richtig get
Yogu - Do 13.01.11 22:21
Du hast ja schon eine Variable Password, in der das eingegebene Passwort steht (du solltest sie mit "" initialisieren, nicht mit "hh"). Wenn der Benutzer die Backspace-Taste drückt wird die Variable ja schon korrekt um ein Zeichen verkürzt (Zeile 15). Nun muss aber das eingegebene Zeichen, sofern es kein Backspace oder Enter ist, zur Variable hinzugefügt werden. Das machst du am besten direkt nach Console.Write('*');. An das eingegebene Zeichen kommst du mit Key.KeyChar.
Und nach der Schleife muss nun das eingegebene Passwort mit dem richtigen Passwort verglichen werden.
Beachte allerdings, dass ein solcher Passwortschutz sehr unsicher ist und leicht geknackt werden kann, wenn man gewisse Kenntnisse hat. Das richtige Passwort muss schließlich irgendwie in der Exe-Datei vorhanden sein, um es mit dem eingegebenen vergleichen zu können. Wenn du es Hackern erschweren willst, das Passwort zu knacken, solltest du dich mit Verschlüsselungstechniken befassen.
Grüße,
Yogu
JoKaBo - Fr 14.01.11 21:41
ich ferstehe es ihrgend wie nicht also was soll ich genau machen
Namenlosnameless - Sa 15.01.11 02:38
Genauere Erklärung zu Yogu's Post:
dein jetziger Code, ersetzt eine Eingabe durch ein anderes Zeichen (z.B. "*")
ohne darüber "Aufzeichnungen" zu machen was eigentlich genau eingegeben wurde.
Im Endeffekt, vergleichst du einen String "******" mit einem String Passwort (z.B. "abcedef"), da kann niemals, dein gewünschtes Ergebnis raus kommen!
Darum: musst du bei jeder Eingabe, den eingebenen Buchstaben abfangen (mit der Funktion
Key.KeyChar, näheres dazu wird dir [url=
http://www.google.com]Google[/url] erklären!), um einen internen String "Eingabe" zu haben, der nicht ausgegeben wird, und einen String "Ausgabe" der so - "*****"- aussieht! Dann musst du nurnoch den internen String mit dem echten Passwort vergleichen!
wie du dies im Programm umsetzt, solltest du eigentlich selber herausfinden können!
mfg Christoph alias Namenlosnameless
JoKaBo - Sa 15.01.11 10:51
Danke habe es jetzt hinbekommen
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!