Autor Beitrag
JoKaBo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157



BeitragVerfasst: Do 13.01.11 21:31 
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
[
ausblenden volle Höhe 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 13.01.11 21:36 
Du hast vergessen eine Frage zu stellen.
JoKaBo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157



BeitragVerfasst: 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.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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.


Zuletzt bearbeitet von Luckie am Do 13.01.11 22:02, insgesamt 1-mal bearbeitet
JoKaBo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157



BeitragVerfasst: Fr 14.01.11 21:41 
ich ferstehe es ihrgend wie nicht also was soll ich genau machen
Namenlosnameless
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 259
Erhaltene Danke: 6

Windows XP Home Edition, Windos Vista
C#
BeitragVerfasst: 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=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

_________________
1:<<Life sucks!!>> 2:<< Well okay>> 1: <<Just Yours>> 2:<<Ohmph>>
JoKaBo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157



BeitragVerfasst: Sa 15.01.11 10:51 
Danke habe es jetzt hinbekommen