C# :: Aufgabe #77 :: Lösung #11
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.
#11

von stbehl (1640 Punkte)
- 13.02.2018 um 16:15 Uhr

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TrainYourProgrammer71 { class Program { static void Main(string[] args) { int laenge, kleinbuchstaben, grossbuchstaben, zahlen, sonderzeichen; Console.WriteLine("PASSWORTGENERATOR"); Console.Write("Wie lang soll das Passwort sein: "); while (Int32.TryParse(Console.ReadLine(), out laenge) == false) { Console.WriteLine("Bitte geben Sie nur Zahlen ein!\n"); Console.Write("Wie lang soll das Passwort sein: "); } Console.Clear(); Console.WriteLine("Geben Sie an, was in dem {0} Zeichen langem Passwort vorkommen soll: ", laenge); Console.Write("Kleinbuchstaben: "); while (Int32.TryParse(Console.ReadLine(), out kleinbuchstaben) == false) { Console.WriteLine("Bitte geben Sie nur Zahlen ein!\n"); Console.Write("Kleinbuchstaben: "); } Console.Write("Grossbuchstaben: "); while (Int32.TryParse(Console.ReadLine(), out grossbuchstaben) == false) { Console.WriteLine("Bitte geben Sie nur Zahlen ein!\n"); Console.Write("Grossbuchstaben: "); } Console.Write("Zahlen: "); while (Int32.TryParse(Console.ReadLine(), out zahlen) == false) { Console.WriteLine("Bitte geben Sie nur Zahlen ein!\n"); Console.Write("Zahlen: "); } Console.Write("Sonderzeichen: "); while (Int32.TryParse(Console.ReadLine(), out sonderzeichen) == false) { Console.WriteLine("Bitte geben Sie nur Zahlen ein!\n"); Console.Write("Sonderzeichen: "); } if ((kleinbuchstaben + grossbuchstaben + zahlen + sonderzeichen) <= laenge) { Console.WriteLine(passwortGenerieren(laenge, kleinbuchstaben, grossbuchstaben, zahlen, sonderzeichen)); } else { Console.WriteLine("Sie haben zu viele Zeichenwünsche für die ausgewählte Passwortlänge eingegeben. Das Programm wird beendet."); } Console.ReadKey(); } static string passwortGenerieren(int länge, int kleinbuchstaben, int grossbuchstaben, int zahlen, int sonderzeichen) { Random zufall = new Random(); string passwort = ""; string ausgabe = ""; char buchstabe; int zaehler = 0; string[] sonder = new string[] { "^", "!", "§", "$", "%", "&", "/", "(", ")", "=", "?", "`", "´", "+", "*", "~", "#", ".", ",", ";", ":", "-", "_", "<", ">", "|", "°" }; while(passwort.Length < länge) { if (passwort.Length < kleinbuchstaben) { buchstabe = Convert.ToChar(zufall.Next(97, 123)); passwort += buchstabe; } else if ((passwort.Length - kleinbuchstaben) < grossbuchstaben) { buchstabe = Convert.ToChar(zufall.Next(65, 91)); passwort += buchstabe; } else if ((passwort.Length - kleinbuchstaben - grossbuchstaben) < zahlen) { passwort += zufall.Next(0, 10); } else { zaehler = zufall.Next(0, sonder.Length + 1); passwort += sonder[zaehler]; } } Console.WriteLine(passwort); for (int i = passwort.Length; i > 0; i--) { zaehler = zufall.Next(0, i); ausgabe += passwort[zaehler]; passwort = passwort.Remove(zaehler, 1); } return ausgabe; } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1