C# :: Aufgabe #77 :: Lösung #4

14 Lösungen Lösungen öffentlich
#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.
#4
vote_ok
von Bacon2008 (260 Punkte) - 27.01.2015 um 14:41 Uhr
Quellcode ausblenden C#-Code
/*
 * Erstellt mit SharpDevelop.
 * Benutzer: especk
 * Datum: 27.01.2015
 * Zeit: 09:32
 * 
 * Sie können diese Vorlage unter Extras > Optionen > Codeerstellung > Standardheader ändern.
 */
using System;
using System.Collections.Generic;

namespace Passwortgenerator
{
	class Program
	{	
		public static string Parameter(string parameter)
		{
			Console.WriteLine("Geben Sie bitte folgende parameter ein: ");
			Console.WriteLine("");
			Console.WriteLine("Kleinbuchstaben:\t1");
			Console.WriteLine("Großbuchstaben:\t\t2");
			Console.WriteLine("Ziffern:\t \t3");
			Console.WriteLine("Sonderzeichen:\t\t4");
			Console.WriteLine("");
			try {
				parameter = Console.ReadLine();
				if(parameter.Length > 4 || parameter.Length < 1){
					Console.WriteLine("Falsche bzw. keine Parameterangabe");
					Console.ReadKey(true);				
					Environment.Exit(0);}
				return parameter;
			} 
			catch (Exception) {
				Console.WriteLine("Falsche Parameterangabe!"); parameter = "";
				Console.ReadKey(true);
				Environment.Exit(0);return parameter;
				}
		}
		public static int Laenge(int laenge)
		{
			Console.WriteLine("Geben Sie die Passwortlänge (max 25 Zeichen) ein:");
			try {
				laenge = Convert.ToInt16(Console.ReadLine());
				if (laenge > 25 || laenge < 1)
				{
					Console.WriteLine("Falsche Längenangabe!");
					Console.ReadKey(true);				
					Environment.Exit(0);;
				}
				return laenge;
			} catch (Exception) {	
				Console.WriteLine("Falsche Längenangabe!"); laenge = 0;
				Console.ReadKey(true);				
				Environment.Exit(0);return laenge;
			}
		}
		public static char[] PasswortZeichenArray(string parameter, int laenge)
		{	
			string klein = "abcdefghijklmnopqrstuvwxyz";
			string groß ="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
			string zahl ="0123456789";
			string zeichen = "!$§%&/()=?/*-+";
			string par1 = "1";
			string par2 = "2";
			string par3 = "3";
			string par4 = "4";
			int test=0;
			int test1;
			int test2=0;
			int test3=0;
			int test4=0;
			for (int i = 0; i < parameter.Length; i++) {
				test1=parameter.IndexOf(par1,i);
				if(test1>=0){test=1;}
				test1=parameter.IndexOf(par2,i);
				if(test1>=0){test2=2;}
				test1=parameter.IndexOf(par3,i);
				if(test1>=0){test3=3;}
				test1=parameter.IndexOf(par4,i);
				if(test1>=0){test4=4;}
			}
			char[] kleinArray = klein.ToCharArray();
			char[] großArray = groß.ToCharArray();
			char[] zahlArray = zahl.ToCharArray();
			char[] sonderArray = zeichen.ToCharArray();
			List<char> zeichenListe = new List<char>();
			
			if(test == 1){	
				for (int i = 0; i < kleinArray.Length; i++) {
					zeichenListe.Add(kleinArray[i]);
				}				
			}
			if(test2 == 2){	
				for (int i = 0; i < großArray.Length; i++) {
					zeichenListe.Add(großArray[i]);
				}				
			}
			if(test3 == 3){	
				for (int i = 0; i < zahlArray.Length; i++) {
					zeichenListe.Add(zahlArray[i]);
				}				
			}
			if(test4 == 4){	
				for (int i = 0; i < sonderArray.Length; i++) {
					zeichenListe.Add(sonderArray[i]);
				}				
			}
			Random random = new Random();
			int listenLänge = zeichenListe.Count;	
			char[] passwortArray = new char[laenge];
			for (int i = 0; i < laenge; i++) {
				int zufallsZahl = random.Next(1,listenLänge);
				passwortArray[i] = zeichenListe[zufallsZahl];
			}

			return passwortArray;
		}
		public static void Main(string[] args)
		{
			
			Console.WriteLine("Passwortgenerator");
			Console.WriteLine("");
			string parameter="";
			parameter = Parameter(parameter);
			int laenge = 0;
			laenge = Laenge(laenge);
			Console.WriteLine("");
			char[] passwort = PasswortZeichenArray(parameter, laenge);
			foreach (char element in passwort) 
			{
				Console.Write(element);
			}
			Console.WriteLine("");

			Console.Write("Press any key to continue . . . ");
			Console.ReadKey(true);
		}
	}
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben