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
1814762

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.