Java :: Aufgabe #72 :: Lösung #2

5 Lösungen Lösungen öffentlich
#72

Passwortgenerator mit Parametern

Anfänger - Java 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.
#2
vote_ok
von Sollder1 (270 Punkte) - 16.03.2016 um 21:29 Uhr
Quellcode ausblenden Java-Code

package Passwortgenerator;
/**
 * @author Sollder1
 * @since 16.03.2016
 * @version 1.0
 * @category Main, Passwortgenerator
 */
public class Main 
{   
	public static void main(String[] args)	
	{
		

		System.out.println("Passwortgenerator 1.00 by Sollder1");
		System.out.println("");
		
		Einlesen_ausführen run = new Einlesen_ausführen();
		run.Einlesen();
		run.Ausführen();
		

	}
}









Quellcode ausblenden Java-Code

package Passwortgenerator;
/**
 * @author Sollder1
 * @since 16.03.2016
 * @version 1.0
 * @category Generator, Passwortgenerator
 */
public class Generator 
{

	public void k_only(int laenge) 
	{
		
		while (laenge>=0)
		{
			//int [] nummern = new int[laenge];
			char [] buchstaben = new char[laenge];
			laenge = laenge -1;
			int count = laenge;
			
			while(count >= 0)
			{
				buchstaben[count]=  (char) ('a' + 25*Math.random());   //Zufällige Charakter Kleinbuchstaben
				count--;
			}
			
			while(laenge >=0)
			{
				System.out.print(buchstaben [laenge]);
				laenge--;
			}
		}
		
	}
	
	
	
	
	public void g_only(int laenge) 
	{
		
		while (laenge>=0)
		{
			//int [] nummern = new int[laenge];
			char [] buchstaben = new char[laenge];
			laenge = laenge -1;
			int count = laenge;
			
			while(count >= 0)
			{
				buchstaben[count]=  (char) ('A' + 25*Math.random());   //Zufällige Charakter Großbuchstaben
				count--;
			}
			
			while(laenge >=0)
			{
				System.out.print(buchstaben [laenge]);
				laenge--;
			}
		}
		
	}

	public void z_only(int laenge) 
	{
		int [] nummern = new int[laenge];
		laenge = laenge -1;
		int count = laenge;
		
		while(count >= 0)
		{
			nummern[count]=(int) (Math.random()*10);
			count--;
		}
		
		while(laenge >=0)
		{
			System.out.print(nummern [laenge]);
			laenge--;
		}
		
	}
	
	
	public void sz_only (int laenge)
	
	{
		String [] sz_Zeichen = new String[laenge];
		laenge = laenge -1;
		int count = laenge;
		
		while(count >= 0)
		{
			int x = (int) (Math.random()*5);
			
			if (x == 0 )
			{
				 sz_Zeichen[count] = "*";
			}
			
			if (x == 1 )
			{
				 sz_Zeichen[count] = ":";
			}
			
			if (x == 2 )
			{
				 sz_Zeichen[count] = "=";
			}
			
			if (x == 3 )
			{
				 sz_Zeichen[count] = "#";
			}
			
			if (x == 4 )
			{
				 sz_Zeichen[count] = "'";
			}
			
			if (x == 5 )
			{
				 sz_Zeichen[count] = ";";
			}
			
			count--;
			
		
		}
		
		while(laenge >=0)
		{
			System.out.print(sz_Zeichen [laenge]);
			laenge--;
		}
	}




	public void k_g(int laenge) 
	{
		char [] buchstaben = new char[laenge];;
		int zo = laenge-1;
		int k_buch = (int) (Math.random()*zo + 1);
		int g_buch = laenge - k_buch;
		int tausch = (int) (Math.random()*1);
		
		if(tausch == 0)
		{
		k_only(k_buch);
		g_only(g_buch);
		}
		
		if(tausch == 1)
		{
		g_only(g_buch);
		k_only(k_buch);
		}
		
		
	}




	public void k_z(int laenge) 
	{
		int zo = laenge-1;
		int z_num = (int) (Math.random()*zo + 1);
		int k_buch = laenge - z_num;
		int tausch = (int) (Math.random()*1);
		
		if(tausch == 0)
		{
		k_only(k_buch);
		z_only(z_num);
		}
		
		if(tausch == 1)
		{
		z_only(z_num);
		k_only(k_buch);
		}
		
	}




	public void k_sz(int laenge) 
	{
		int zo = laenge-1;
		int sz_son = (int) (Math.random()*zo + 1);
		int k_buch = laenge - sz_son;
		int tausch = (int) (Math.random()*1);
		
		if(tausch == 0)
		{
		k_only(k_buch);
		sz_only(sz_son);
		}
		
		if(tausch == 1)
		{
		sz_only(sz_son);
		k_only(k_buch);
		}
		
	}
	
	
	
	public void g_z(int laenge) 
	{
	
		int zo = laenge-1;
		int g_buch = (int) (Math.random()*zo + 1);
		int z_num = laenge - g_buch;
		int tausch = (int) (Math.random()*1);
		
		if(tausch == 0)
		{
		g_only(g_buch);
		z_only(z_num);
		}
		
		if(tausch == 1)
		{
		z_only(z_num);
		g_only(g_buch);
		}
		
	}




	public void z_sz(int laenge) 
	{
		int zo = laenge-1;
		int sz_son = (int) (Math.random()*zo + 1);
		int z_num = laenge - sz_son;
		int tausch = (int) (Math.random()*1);
		
		if(tausch == 0)
		{
		sz_only(sz_son);
		z_only(z_num);
		}
		
		if(tausch == 1)
		{
		z_only(z_num);
		sz_only(sz_son);
		}
		
	}




	public void g_sz(int laenge) 
	{
		int zo = laenge-1;
		int sz_son = (int) (Math.random()*zo + 1);
		int g_buch = laenge - sz_son;
		int tausch = (int) (Math.random()*1);
		
		if(tausch == 0)
		{
		sz_only(sz_son);
		g_only(g_buch);
		}
		
		if(tausch == 1)
		{
		g_only(g_buch);
		sz_only(sz_son);
		}
	}




	public void k_g_z(int laenge) 
	{
			
		while(laenge > 0)
		{
			
		int what = (int) ((Math.random()*3)+1);;
			
		if(what == 1)
		{
			k_only(1);
		}
		
		if(what == 2)
		{
			g_only(1);
		}
		
		if(what == 3)
		{
			z_only(1);
		}
		
		laenge --;
			
		}
	}




	public void k_g_z_sz(int laenge) {
		
		while(laenge > 0)
		{
			int what = (int) ((Math.random()*4)+1);
			
			if(what == 1)
			{
				sz_only(1);
			}
			
			if(what == 2)
			{
				k_only(1);
			}
			
			if(what == 3)
			{
				g_only(1);
			}
			
			if(what == 4)
			{
				z_only(1);
			}
			
			laenge --;
			
			what = 0;
		}
		
	}




	public void sz_g_z(int laenge) 
	{
		while(laenge > 0)
		{
			int what = (int) ((Math.random()*3)+1);
			
			if(what == 1)
			{
				sz_only(1);
			}
			
			if(what == 2)
			{
				g_only(1);
			}
			
			if(what == 3)
			{
				z_only(1);
			}
			
			laenge --;
			
			what = 0;
		}
		
	}




	public void k_g_sz(int laenge) 
	{
		while(laenge > 0)
		{
			int what = (int) ((Math.random()*3)+1);
			
			if(what == 1)
			{
				sz_only(1);
			}
			
			if(what == 2)
			{
				k_only(1);
			}
			
			if(what == 3)
			{
				g_only(1);
			}
			
			laenge --;
			
			what = 0;
		}
		
	}




	public void k_sz_z(int laenge) 
	{
		while(laenge > 0)
		{
			int what = (int) ((Math.random()*3)+1);
			
			if(what == 1)
			{
				sz_only(1);
			}
			
			if(what == 2)
			{
				k_only(1);
			}
			
			if(what == 3)
			{
				z_only(1);
			}
			
			laenge --;
			
			what = 0;
		}
	}
}








Quellcode ausblenden Java-Code

package Passwortgenerator;

import java.util.Scanner;
/**
 * @author Sollder1
 * @since 16.03.2016
 * @version 1.0
 * @category Engabe_Ausführung, Passwortgenerator
 */
public class Einlesen_ausführen 
{
	int laenge;
	boolean Kleinbuchstaben;
	boolean Großbuchstaben;
	boolean Zahlen;
	boolean Sonderzeichen;
	
	
	public void Einlesen (){
		
	Scanner in = new Scanner(System.in);
	
	System.out.print("Laenge des Passwortes: ");
	laenge = in.nextInt();
	
	if(laenge == 0)
	{
		System.out.println("Error 1: Mindestanzahl ist 1");
		System.out.print("Laenge des Passwortes: ");
		laenge = in.nextInt();
	}
	
	System.out.print("Sollen Kleinbuchstaben enthalten sein? [true/false] ");
	Kleinbuchstaben = in.nextBoolean();
	
	System.out.print("Sollen Großbuchstaben enthalten sein? [true/false] ");
	Großbuchstaben = in.nextBoolean();
	
	System.out.print("Sollen Zahlen enthalten sein? [true/false] ");
	Zahlen = in.nextBoolean();
	
	System.out.print("Sollen Sonderzeichen enthalten sein? [true/false] ");
	Sonderzeichen = in.nextBoolean();
	
	}


	public void Ausführen() {
		
		Generator gen = new Generator();
		
		//----------------------------mit keiner eingabe
		if (Kleinbuchstaben == false && Großbuchstaben == false && Zahlen == false && Sonderzeichen == false)
		{
			System.out.println("Error 2: Es müssen Generationsvorschriften gemacht werden.");
		}
		
		
		//-------------------------mit einer Eingabe
		if (Kleinbuchstaben == true && Großbuchstaben == false && Zahlen == false && Sonderzeichen == false)
		{
			gen.k_only(laenge);
		}
		
		if (Kleinbuchstaben == false && Großbuchstaben == false && Zahlen == true && Sonderzeichen == false)
		{
			gen.z_only(laenge);
		}
		
		if (Kleinbuchstaben == false && Großbuchstaben == true && Zahlen == false && Sonderzeichen == false)
		{
			gen.g_only(laenge);
		}
		
		if (Kleinbuchstaben == false && Großbuchstaben == false && Zahlen == false && Sonderzeichen == true)
		{
			gen.sz_only(laenge);
		}
		
		
		//---------------------------------mit zwei Eingaben
		if (Kleinbuchstaben == true && Großbuchstaben == true && Zahlen == false && Sonderzeichen == false)
		{
			gen.k_g(laenge);
		}
		
		if(Kleinbuchstaben == true && Großbuchstaben == false && Zahlen == true && Sonderzeichen == false)
		{
			gen.k_z(laenge);
		}
		
		if(Kleinbuchstaben == true && Großbuchstaben == false && Zahlen == false && Sonderzeichen == true)
		{
			gen.k_sz(laenge);
		}
		
		if(Kleinbuchstaben == false && Großbuchstaben == true && Zahlen == true && Sonderzeichen == false)
		{
			gen.g_z(laenge);
		}
		
		if(Kleinbuchstaben == false && Großbuchstaben == true && Zahlen == false && Sonderzeichen == true)
		{
			gen.g_sz(laenge);
		}
		
		if(Kleinbuchstaben == false && Großbuchstaben == false && Zahlen == true && Sonderzeichen == true)
		{
			gen.z_sz(laenge);
		}
		
		
		
		//-----------------------------------mit 3 Angaben
		if (Kleinbuchstaben == true && Großbuchstaben == true && Zahlen == true && Sonderzeichen == false)
		{
			gen.k_g_z(laenge);
		}
		
		if (Kleinbuchstaben == false && Großbuchstaben == true && Zahlen == true && Sonderzeichen == true)
		{
			gen.sz_g_z(laenge);
		}
		
		if (Kleinbuchstaben == true && Großbuchstaben == false && Zahlen == true && Sonderzeichen == true)
		{
			gen.k_sz_z(laenge);
		}
		
		if (Kleinbuchstaben == true && Großbuchstaben == true && Zahlen == false && Sonderzeichen == true)
		{
			gen.k_g_sz(laenge);
		}
		
		
		//-------------------------------------mit 4 Angaben
		if (Kleinbuchstaben == true && Großbuchstaben == true && Zahlen == true && Sonderzeichen == true)
		{
			gen.k_g_z_sz(laenge);
		}
		
	}	
}


Kommentare:

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

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