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

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.
#4
vote_ok
von Bufkin (1410 Punkte) - 12.09.2017 um 16:07 Uhr
Quellcode ausblenden Java-Code
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

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