diff --git a/Unbenanntes Diagramm.drawio b/AKD.drawio similarity index 100% rename from Unbenanntes Diagramm.drawio rename to AKD.drawio diff --git a/Unbenanntes Diagramm.pdf b/Unbenanntes Diagramm.pdf deleted file mode 100644 index 3021a28..0000000 Binary files a/Unbenanntes Diagramm.pdf and /dev/null differ diff --git a/message.java b/message.java new file mode 100644 index 0000000..c4caad5 --- /dev/null +++ b/message.java @@ -0,0 +1,128 @@ +package uebung4; + +/*Programm, dass ein eingegebenes Passwort auf seine Sicherheit überprüft. +Es soll mindestens 20 Zeichen und mindestens 3 Klein-, Großbuchstaben, Ziffern und Sonderzeichen beinhalten.*/ + +import java.util.Scanner; + +public class Passwort_Check { + + public static void main(String[] args) { + Scanner scanner = new Scanner(System.in); + boolean istPasswortSicher = false;//Passwort wird initial auf false gesetzt + String passwort;// String-Variable zum Speichern des Passworts + System.out.println("Willkommen beim Passwort-Checker!"); + + //Überprüfung und Ausgabe des Problems oder der Sicherheit des Passworts + do { + System.out.print("Bitte geben Sie ein Passwort ein: "); + passwort = scanner.nextLine();/* speichert die Benutzereingabe in der Variable passwort*/ + + if (!checkLaenge(passwort)) { + System.out.println("Fehler: Das Passwort ist zu kurz. Es muss mindestens 20 Zeichen lang sein."); + } + + else if (!checkKleinBuchstaben(passwort)) { + System.out.println("Fehler: Das Passwort muss mindestens 3 Kleinbuchstaben enthalten."); + } + + + else if (!checkGrossBuchstaben(passwort)) { + System.out.println("Fehler: Das Passwort muss mindestens 3 Großbuchstaben enthalten."); + } + + + else if (!checkZiffer(passwort)) { + System.out.println("Fehler: Das Passwort muss mindestens 3 Ziffern enthalten."); + } + + + else if (!checkSonderZeichen(passwort)) { + System.out.println("Fehler: Das Passwort muss mindestens 3 Sonderzeichen enthalten."); + } + + + else { + istPasswortSicher = true; + System.out.println("Passwort ist sicher."); + } + }while (!istPasswortSicher);//wiederhole die Eingabe bis Passwort sicher ist + + + scanner.close(); + System.out.println("Programm beendet."); + //wenn das Passwort sicher ist, wird das Programm beendet + } + + /*Rückgabewert ist true, wenn das Passwort mindestens 20 Zeichen enthält, ansonsten wird false zurückgegeben*/ + public static boolean checkLaenge(String passwort) { + return passwort != null && passwort.length() >= 20; + } + + /*Rückgabewert ist true, wenn das Passwort mindestens 3 Kleinbuchstaben enthält, ansonsten wird false zurückgegeben*/ + public static boolean checkKleinBuchstaben(String passwort) { + //Anzahl der Kleinbuchstaben wird gezählt + int count = 0; + if (passwort==null) { + return false; + } + for (char c : passwort.toCharArray()) { + if (Character.isLowerCase(c)) { + count++; + } + } + return count >= 3; + //wenn Anzahl der Kleinbuchstaben größer gleich 3 ist, wird true zurückgegeben + } + + /*Rückgabewert ist true, wenn das Passwort mindestens 3 Großbuchstaben enthält, ansonsten wird false zurückgegeben*/ + public static boolean checkGrossBuchstaben(String passwort) { + //Anzahl der Großbuchstaben wird gezählt + int count = 0; + if (passwort==null) { + return false; + } + for (char c : passwort.toCharArray()) { + if (Character.isUpperCase(c)) { + count++; + } + } + return count >= 3; + //wenn Anzahl der Großbuchstaben größer gleich 3 ist, wird true zurückgegeben + } + + /*Rückgabewert ist true, wenn das Passwort mindestens 3 Ziffern enthält, ansonsten wird false zurückgegeben*/ + public static boolean checkZiffer(String passwort) { + //Anzahl der Zahlen wird gezählt + int count = 0; + if (passwort==null) { + return false; + } + for (char c : passwort.toCharArray()) { + if (Character.isDigit(c)) { + count++; + } + } + return count >= 3; + //wenn Anzahl der Zahlen größer gleich 3 ist, wird true zurückgegeben + } + + /*Rückgabewert ist true, wenn das Passwort mindestens 3 Sonderzeichen enthält, ansonsten wird false zurückgegeben*/ + public static boolean checkSonderZeichen(String passwort) { + int count = 0; + if (passwort==null) { + return false; + } + for (char c : passwort.toCharArray()) { + int ascii = (int) c; + if ((ascii >= 32 && ascii <= 47) || (ascii >= 58 && ascii <= 64) || + (ascii >= 91 && ascii <= 96) || (ascii >= 123 && ascii <= 126) || + ascii == 128 || ascii == 130 || ascii == 132 || ascii == 136) { + count++; + } + } + return count >= 3; + //wenn Anzahl der Sonderzeichen größer gleich 3 ist, wird true zurückgegeben + } + +} \ No newline at end of file