Laden...

Eigener Passwort Generator erzeugt längere Passworte als gewünscht/vorgegeben

Erstellt von Movementroboter vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.171 Views
Thema geschlossen
M
Movementroboter Themenstarter:in
39 Beiträge seit 2013
vor 9 Jahren
Eigener Passwort Generator erzeugt längere Passworte als gewünscht/vorgegeben

Hallo Leute,
ich habe versucht ein Passwort Generator zu erstellen und möchte nun per Checkbox festlegen welche Zeichen er verwendet. Die Checkboxen funktionieren zwar aber in der Textbox werden immer mehr Zeichen dargestellt als ich in meine NumericUpDown feld angegeben habe 😦

Wo liegt mein Fehler bzw was mache ich Falsch ?



private void btnGenerieren_Click(object sender, EventArgs e)
        {
            int r, k;
            int passwordLength = (Int32)passwordLengthBox.Value;
            string password = "";
            char[] upperCase = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
            char[] lowerCase = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };
            char[] numbers = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
            char[] sign = { '!' , '"' , '§' , '$' , '%' , '&' , '/' , '(' , ')' , '=' , '?' , '[' , ']' , '³' , '#' , '*' , '+' , '~' }; 
            Random rRandom = new Random();



            for (int i = 0; i < passwordLength; i++)
            {
                r = rRandom.Next(4);

                if (cbGroßbuchstaben.Checked)
                {
                    if (r == 0)
                    {
                        k = rRandom.Next(0, 25);
                        password += upperCase[k];
                    }

                    else
                    {
                        k = rRandom.Next(0, 25);
                        password += upperCase[k];
                    }
                }



                if (cbKleinbuchstaben.Checked)
                {
                    if (r == 1)
                    {
                        k = rRandom.Next(0, 25);
                        password += lowerCase[k];
                    }

                    else
                    {
                        
                        k = rRandom.Next(0, 25);
                        password += upperCase[k];
                    }
                }

                if (cbZahlen.Checked)
                {
                    if (r == 2)
                    {
                        k = rRandom.Next(0, 9);
                        password += numbers[k];
                    }

                    else
                    {
                        k = rRandom.Next(0, 9);
                        password += numbers[k];
                    }
                }

                if (cbZeichen.Checked)
                {
                    if (r == 3)
                    {
                        k = rRandom.Next(0, 17);
                        password += sign[k];
                    }

                    else 
                    {
                        k = rRandom.Next(0, 17);
                        password += sign[k];
                    }
                }
            }

            txbPasswort.Text = password;
        }


LG,
Movementroboter

3.170 Beiträge seit 2006
vor 9 Jahren

Hallo,

ein einfacher Logikfehler.
Geh mal mit dem Debugger durch Deinen Code, dann wirst Du feststellen, dass Du in jedem Schleifendurchlauf genau so viele Zeichen anhängst, wie Checkboxen angehakt sind.
Auf die Lösung solltest Du mit Dieser Info selbst kommen.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

2.207 Beiträge seit 2011
vor 9 Jahren

Hallo Movementroboter,

das hättest du leicht herausgefunden, wenn du den Debugger verwendet hättest. Das setzen wir hier jedoch vorraus.

[Artikel] Debugger: Wie verwende ich den von Visual Studio?

Bitte beachte auch, dass wir hier keine Code-Reviews etc. machen (Ja, ich weiss, du wolltest kein Review, ich sage es nur, weil es in die Richtung geht).

Das steht aber unter [Hinweis] Wie poste ich richtig? Punkt 4.
"Gebt uns [...] nicht längeren oder gar kompletten Quellcode und fragt wo der Fehler ist."

Daher ist hier zu.

Gruss

Coffeebean

Thema geschlossen