C# :: Aufgabe #77 :: Lösung #12
14 Lösungen

#77
Passwortgenerator mit Parametern
Anfänger - C#
von pocki
- 27.11.2014 um 18:11 Uhr
Erstelle ein Programm/Funktion welche/s ein zufälliges Passwort erzeugt.
Als Parameter soll die Länge sowie die Art der darin vorkommenden Zeichen übergeben werden können.
Zur Auswahl sollen stehen: Kleinbuchstaben, Großbuchstaben, Zahlen und Sonderzeichen.
Jede beliebige Kombination der Parameter soll möglich sein.
Als Parameter soll die Länge sowie die Art der darin vorkommenden Zeichen übergeben werden können.
Zur Auswahl sollen stehen: Kleinbuchstaben, Großbuchstaben, Zahlen und Sonderzeichen.
Jede beliebige Kombination der Parameter soll möglich sein.
#12

von art1808 (60 Punkte)
- 25.04.2018 um 16:03 Uhr

/* * Password Generator * Date: 25042018 * Author: art1808 * * Inputs: * Length * Char Upper * Char Lower * Special Char * Button Generate PW * Button Copy to Clipboard * Button Clear */ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace PasswordGenerator { public partial class Form1 : Form { public Form1() { InitializeComponent(); } //Input public int Len { get; set; } public bool Numbers { get; set; } public bool CharUpper { get; set; } public bool CharLower { get; set; } public bool SpecialChar { get; set; } public int CurrentChecks { get; set; } //Password public string Password { get; set; } private void btnCreate_Click(object sender, EventArgs e) { if (Numbers == true || CharUpper == true || CharLower == true || SpecialChar == true) { Password = ""; CurrentChecks = 0; char[] passwordChar = new char[105]; int counter = 0; int.TryParse(numLenNum.Value.ToString(), out int len); Len = len; if (Numbers) CurrentChecks++; if (CharUpper) CurrentChecks++; if (CharLower) CurrentChecks++; if (SpecialChar) CurrentChecks++; Random rnd = new Random(); int rndNo = 0; int rndCharU = 0; int rndCharL = 0; int rndSpeChar = 0; int rndPW = 0; while (len > 0) { if (Numbers == true) { rndNo = rnd.Next(0, 10); switch (rndNo) { case 0: passwordChar[counter] = '0'; counter++; break; case 1: passwordChar[counter] = '1'; counter++; break; case 2: passwordChar[counter] = '2'; counter++; break; case 3: passwordChar[counter] = '3'; counter++; break; case 4: passwordChar[counter] = '4'; counter++; break; case 5: passwordChar[counter] = '5'; counter++; break; case 6: passwordChar[counter] = '6'; counter++; break; case 7: passwordChar[counter] = '7'; counter++; break; case 8: passwordChar[counter] = '8'; counter++; break; case 9: passwordChar[counter] = '9'; counter++; break; } } if (CharUpper == true) { rndCharU = rnd.Next(0, 26); switch (rndCharU) { case 0: passwordChar[counter] = 'A'; counter++; break; case 1: passwordChar[counter] = 'B'; counter++; break; case 2: passwordChar[counter] = 'C'; counter++; break; case 3: passwordChar[counter] = 'D'; counter++; break; case 4: passwordChar[counter] = 'E'; counter++; break; case 5: passwordChar[counter] = 'F'; counter++; break; case 6: passwordChar[counter] = 'G'; counter++; break; case 7: passwordChar[counter] = 'H'; counter++; break; case 8: passwordChar[counter] = 'I'; counter++; break; case 9: passwordChar[counter] = 'J'; counter++; break; case 10: passwordChar[counter] = 'K'; counter++; break; case 11: passwordChar[counter] = 'L'; counter++; break; case 12: passwordChar[counter] = 'M'; counter++; break; case 13: passwordChar[counter] = 'N'; counter++; break; case 14: passwordChar[counter] = 'O'; counter++; break; case 15: passwordChar[counter] = 'P'; counter++; break; case 16: passwordChar[counter] = 'Q'; counter++; break; case 17: passwordChar[counter] = 'R'; counter++; break; case 18: passwordChar[counter] = 'S'; counter++; break; case 19: passwordChar[counter] = 'T'; counter++; break; case 20: passwordChar[counter] = 'U'; counter++; break; case 21: passwordChar[counter] = 'V'; counter++; break; case 22: passwordChar[counter] = 'W'; counter++; break; case 23: passwordChar[counter] = 'X'; counter++; break; case 24: passwordChar[counter] = 'Y'; counter++; break; case 25: passwordChar[counter] = 'Z'; counter++; break; } } if (CharLower == true) { rndCharL = rnd.Next(0, 26); switch (rndCharU) { case 0: passwordChar[counter] = 'a'; counter++; break; case 1: passwordChar[counter] = 'b'; counter++; break; case 2: passwordChar[counter] = 'c'; counter++; break; case 3: passwordChar[counter] = 'd'; counter++; break; case 4: passwordChar[counter] = 'e'; counter++; break; case 5: passwordChar[counter] = 'f'; counter++; break; case 6: passwordChar[counter] = 'g'; counter++; break; case 7: passwordChar[counter] = 'h'; counter++; break; case 8: passwordChar[counter] = 'i'; counter++; break; case 9: passwordChar[counter] = 'j'; counter++; break; case 10: passwordChar[counter] = 'k'; counter++; break; case 11: passwordChar[counter] = 'l'; counter++; break; case 12: passwordChar[counter] = 'm'; counter++; break; case 13: passwordChar[counter] = 'n'; counter++; break; case 14: passwordChar[counter] = 'o'; counter++; break; case 15: passwordChar[counter] = 'p'; counter++; break; case 16: passwordChar[counter] = 'q'; counter++; break; case 17: passwordChar[counter] = 'r'; counter++; break; case 18: passwordChar[counter] = 's'; counter++; break; case 19: passwordChar[counter] = 't'; counter++; break; case 20: passwordChar[counter] = 'u'; counter++; break; case 21: passwordChar[counter] = 'v'; counter++; break; case 22: passwordChar[counter] = 'w'; counter++; break; case 23: passwordChar[counter] = 'x'; counter++; break; case 24: passwordChar[counter] = 'y'; counter++; break; case 25: passwordChar[counter] = 'z'; counter++; break; } } if (SpecialChar == true) { rndSpeChar = rnd.Next(0, 11); switch (rndSpeChar) { case 0: passwordChar[counter] = '?'; counter++; break; case 1: passwordChar[counter] = '!'; counter++; break; case 2: passwordChar[counter] = '$'; counter++; break; case 3: passwordChar[counter] = '%'; counter++; break; case 4: passwordChar[counter] = '='; counter++; break; case 5: passwordChar[counter] = '*'; counter++; break; case 6: passwordChar[counter] = '+'; counter++; break; case 7: passwordChar[counter] = ';'; counter++; break; case 8: passwordChar[counter] = ':'; counter++; break; case 9: passwordChar[counter] = '-'; counter++; break; case 10: passwordChar[counter] = '_'; counter++; break; } } len -= CurrentChecks; } len = Len; while (len > 0) { rndPW = rnd.Next(0, Len); Password += passwordChar[rndPW].ToString(); len -= 1; } txtbPassword.Text = Password; } else MessageBox.Show("Keine Wertebereiche ausgewählt"); } private void cbxNumbers_CheckedChanged(object sender, EventArgs e) { if (cbxNumbers.Checked == true) Numbers = true; else Numbers = false; } private void cbxCharactersUpper_CheckedChanged(object sender, EventArgs e) { if (cbxCharactersUpper.Checked == true) CharUpper = true; else CharUpper = false; } private void cbxCharactersLower_CheckedChanged(object sender, EventArgs e) { if (cbxCharactersLower.Checked == true) CharLower = true; else CharLower = false; } private void cbxSpecialCharacter_CheckedChanged(object sender, EventArgs e) { if (cbxSpecialCharacter.Checked == true) SpecialChar = true; else SpecialChar = false; } private void btnClear_Click(object sender, EventArgs e) { txtbPassword.Clear(); } private void btnCopy_Click(object sender, EventArgs e) { Clipboard.SetText(txtbPassword.Text); } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1