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