Java :: Aufgabe #72 :: Lösung #4
5 Lösungen
#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.
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
von Bufkin (1410 Punkte)
- 12.09.2017 um 16:07 Uhr
import java.util.*;
import java.util.regex.*;
class passwort
{
public static String[] alphabet(String parameter)
{
String alpha = "";
String[] returnArray = new String[2];
ArrayList<String> numbers = new ArrayList<String>();
Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher(parameter);
while (m.find()) {
numbers.add(m.group());
}
returnArray[0] = numbers.get(0);
if(parameter.contains("K") || parameter.contains("k"))
{
alpha = alpha.concat("abcdefghijklmnopqrstuvwxyz");
}
if(parameter.contains("G") || parameter.contains("g"))
{
alpha = alpha.concat("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
}
if(parameter.contains("Z") || parameter.contains("z"))
{
alpha = alpha.concat("1234567890");
}
if(parameter.contains("S") || parameter.contains("s"))
{
alpha = alpha.concat("!§$%&?#+*-_");
}
returnArray[1] = alpha;
return returnArray;
}
public static void passGen(String[] alphabet)
{
int länge = Integer.parseInt(alphabet[0]);
String alpha = alphabet[1];
String passwort = "";
for(int i = 0; i < länge; i++)
{
Random random = new Random();
int index = random.nextInt(alpha.length());
passwort = passwort.concat(String.valueOf(alpha.charAt(index)));
}
System.out.println("\nGeneriertes Passwort: " + passwort);
}
public static void main (String[] args) throws java.lang.Exception
{
System.out.print("Bitte geben Sie die folgenden Parameter direkt hintereinander ein (Beispiel: 8KGZS):\n\n1. Länge des Passwortes als Zahl\n2. K für Kleinbuchstaben\n3. G für Großbuchstaben\n4. Z für Zahlen\n5. S für Sonderzeichen\n");
Scanner reader = new Scanner(System.in);
String parameter = reader.next();
reader.close();
passGen(alphabet(parameter));
}
}
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
