diff --git a/.$Unbenanntes Diagramm.drawio.bkp b/.$Unbenanntes Diagramm.drawio.bkp
new file mode 100644
index 0000000..c0d8706
--- /dev/null
+++ b/.$Unbenanntes Diagramm.drawio.bkp
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/Passwort_Check.java b/Passwort_Check.java
index a49053b..05bc04a 100644
--- a/Passwort_Check.java
+++ b/Passwort_Check.java
@@ -3,27 +3,34 @@ import java.util.Scanner;
public class Passwort_Check {
public static boolean checkLaenge(String passwort) {
+ // Abfrage mind. Anzahl
return passwort.length() >= 20;
}
public static boolean checkKleinBuchstaben(String passwort) {
-
+ // Abfrage der Kleinbuchstaben
return passwort.matches(".*[a-z].*[a-z].*[a-z].*");
}
public static boolean checkGrossBuchstaben(String passwort) {
-
+ // Abfrage der Grossbuchstaben
return passwort.matches(".*[A-Z].*[A-Z].*[A-Z].*");
}
public static boolean checkZiffer(String passwort) {
+ // Abfrage der Ziffern
return passwort.matches(".*[0-9].*[0-9].*[0-9].*");
}
public static boolean checkSonderZeichen(String passwort) {
-
- return passwort.matches(".*[!\\?\\$%@*+\\-=_.].*[!\\?\\$%@*+\\-=_.].*[!\\?\\$%@*+\\-=_.].*");
+ // Überprüfung mit Regex durch Ausschluss
+ // [^A-Za-z0-9] Schließt alle ziffern und Buchstaben aus
+ // Ausschlus der Steuerzeichen:
+ // [^/t] schließt Tab aus
+ // [^/r] schließt Carriage Return aus
+ // [^/n] schließt Line Feed aus
+ return passwort.matches(".*[^A-Za-z0-9\t\r\n].*[^A-Za-z0-9\t\r\n].*[^A-Za-z0-9\t\r\n].*");
}
public static void main(String[] args) {
diff --git a/Test_Passwort_Check.java b/Test_Passwort_Check.java
new file mode 100644
index 0000000..948b947
--- /dev/null
+++ b/Test_Passwort_Check.java
@@ -0,0 +1,76 @@
+import org.junit.jupiter.api.Test;
+// import static org.junit.Assert.assertNull;
+import static org.junit.jupiter.api.Assertions.*;
+
+public class Test_Passwort_Check {
+
+ @Test
+ public void testCheckLaenge() {
+ // Länge ist zu kurz
+ assertFalse(Passwort_Check.checkLaenge("KurzesPasswort123!"));
+ assertFalse(Passwort_Check.checkLaenge("Hello Wolrd"));
+ assertFalse(Passwort_Check.checkLaenge("qwertzuiopasdfghjkl"));
+ assertFalse(Passwort_Check.checkLaenge("1234567890qwertzuio"));
+ // richtige Länge
+ assertTrue(Passwort_Check.checkLaenge("LangesPasswortMit123!@#"));
+ }
+
+ @Test
+ public void testCheckKleinBuchstaben() {
+ // zu wenig Kleinbuchstaben
+ assertFalse(Passwort_Check.checkKleinBuchstaben("ABCDEF123!@#")); // keine Kleinbuchstaben
+ assertFalse(Passwort_Check.checkKleinBuchstaben("aB123")); // nur 1 Kleinbuchstaben
+ assertFalse(Passwort_Check.checkKleinBuchstaben("HELLO!WorLD!ICHLIEBEJAVA")); // nur 2 Kleinbuchstaben
+
+ // genügend Kleinbuchstaben
+ assertTrue(Passwort_Check.checkKleinBuchstaben("abc DEF 123!@#"));
+
+ }
+
+ @Test
+ public void testCheckGrossBuchstaben() {
+ // zu wenig Großbuchstaben
+ assertFalse(Passwort_Check.checkGrossBuchstaben("abcdef123!@#")); // keine Grossbuchstaben
+ assertFalse(Passwort_Check.checkGrossBuchstaben("aB123")); // nur 1 Grossbuchstaben
+ assertFalse(Passwort_Check.checkGrossBuchstaben("aAB123")); // nur 2 Grossbuchstaben
+ // mind. 3 Großbuchstaben
+ assertTrue(Passwort_Check.checkGrossBuchstaben("ABCdef123!@#"));
+ assertTrue(Passwort_Check.checkKleinBuchstaben("HelloWorldichliebejava"));
+ }
+
+ @Test
+ public void testCheckZiffer() {
+ // zu wenig Ziffern
+ assertFalse(Passwort_Check.checkZiffer("abcdefABC!@#")); // keine Ziffern
+ assertFalse(Passwort_Check.checkZiffer("aB1")); // nur 1 Ziffer
+ assertFalse(Passwort_Check.checkZiffer("a2 B1")); // nur 2 Ziffer
+ // mid. 3 Ziffern
+ assertTrue(Passwort_Check.checkZiffer("abcABC123!@#")); // 3 Ziffern
+ }
+
+ @Test
+ public void testCheckSonderZeichen() {
+ // zu wenig Sonderzeichen
+ assertFalse(Passwort_Check.checkSonderZeichen("abcABC123")); // keine Sonderzeichen
+ assertFalse(Passwort_Check.checkSonderZeichen("abcABC123!")); // nur 1 Sonderzeichen
+ assertFalse(Passwort_Check.checkSonderZeichen("abcABC123!@")); // nur 2 Sonderzeichen
+ // mind. 3 Sonderzeichen
+ assertTrue(Passwort_Check.checkSonderZeichen("abcABC123!@#")); // 3 Sonderzeichen
+ // Überprüfung der speziellen Sonderzeichen
+ assertTrue(Passwort_Check.checkSonderZeichen("a b c d")); // Leerzeichen als Sonderzeichen
+ assertTrue(Passwort_Check.checkSonderZeichen("a b c d"));
+
+ assertFalse(Passwort_Check.checkSonderZeichen("\t\t\t")); // Tab als Sonderzeichen
+ assertFalse(Passwort_Check.checkSonderZeichen("\r\r\r")); // Carriage Return als Sonderzeichen
+ assertFalse(Passwort_Check.checkSonderZeichen("\n\n\n")); // Line Feed als Sonderzeichen
+
+ // Prüfe einzeln alle ASCII-Sonderzeichen (33–47, 58–64, 91–96, 123–126)
+ String asciiSonderzeichen = "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~";
+ for (int i = 0; i < asciiSonderzeichen.length(); i++) {
+ String c = "" + asciiSonderzeichen.charAt(i);
+ assertFalse(Passwort_Check.checkSonderZeichen("abcABC123" + c + c)); // nur 2 Sonderzeichen
+ assertTrue(Passwort_Check.checkSonderZeichen("abcABC123" + c + c + c)); // 3 identische Sonderzeichen
+ }
+
+ }
+}
diff --git a/Test_Passwort_Check_Gesamt.java b/Test_Passwort_Check_Gesamt.java
deleted file mode 100644
index f13d1d1..0000000
--- a/Test_Passwort_Check_Gesamt.java
+++ /dev/null
@@ -1,104 +0,0 @@
-import org.junit.jupiter.api.Test;
-// import static org.junit.Assert.assertNull;
-import static org.junit.jupiter.api.Assertions.*;
-
-import java.io.*;
-
-public class Test_Passwort_Check_Gesamt {
- @Test
- public void testPasswortZuKurz() {
- assertFalse(Passwort_Check.checkLaenge("Hello Wolrd"));
- assertFalse(Passwort_Check.checkLaenge("qwertzuiopasdfghjkl"));
- assertFalse(Passwort_Check.checkLaenge("1234567890qwertzuio"));
-
- }
- @Test
- public void testPasswortKleinBuchstaben() {
- assertFalse(Passwort_Check.checkKleinBuchstaben("HELLO!WorLD!ICHLIEBEJAVA"));
- assertFalse(Passwort_Check.checkKleinBuchstaben("QWERTZUoPlYXCVBNMLKJHGFDS"));
- assertFalse(Passwort_Check.checkKleinBuchstaben("1234567890QWERTZUIOP"));
-
- }
- @Test
- public void testPasswortGrossBuchstaben(){
- assertTrue(Passwort_Check.checkKleinBuchstaben("HelloWorldichliebejava"));
- }
-
-
-
- @Test
- public void testCheckLaenge() {
- assertFalse(Passwort_Check.checkLaenge("KurzesPasswort123!")); // < 20
- assertTrue(Passwort_Check.checkLaenge("LangesPasswortMit123!@#")); // >= 20
- }
-
- @Test
- public void testCheckKleinBuchstaben() {
- assertFalse(Passwort_Check.checkKleinBuchstaben("ABCDEF123!@#")); // keine Kleinbuchstaben
- assertFalse(Passwort_Check.checkKleinBuchstaben("aB123")); // nur 1 Kleinbuchstabe
- assertTrue(Passwort_Check.checkKleinBuchstaben("abcDEF123!@#")); // 3 Kleinbuchstaben
- }
-
- @Test
- public void testCheckGrossBuchstaben() {
- assertFalse(Passwort_Check.checkGrossBuchstaben("abcdef123!@#")); // keine Großbuchstaben
- assertFalse(Passwort_Check.checkGrossBuchstaben("aB123")); // nur 1 Großbuchstabe
- assertTrue(Passwort_Check.checkGrossBuchstaben("ABCdef123!@#")); // 3 Großbuchstaben
- }
-
- @Test
- public void testCheckZiffer() {
- assertFalse(Passwort_Check.checkZiffer("abcdefABC!@#")); // keine Ziffern
- assertFalse(Passwort_Check.checkZiffer("aB1")); // nur 1 Ziffer
- assertTrue(Passwort_Check.checkZiffer("abcABC123!@#")); // 3 Ziffern
- }
-
- @Test
- public void testCheckSonderZeichen() {
- assertFalse(Passwort_Check.checkSonderZeichen("abcABC123")); // keine Sonderzeichen
- assertFalse(Passwort_Check.checkSonderZeichen("abcABC123!@")); // nur 2 Sonderzeichen
- assertTrue(Passwort_Check.checkSonderZeichen("abcABC123!@#")); // 3 Sonderzeichen
- }
-
-
-
-
-
-
- @Test
- public void testMainMitUnsicheremUndSicheremPasswort() {
- // Simulierte Benutzereingaben (1. Versuch unsicher, 2. Versuch sicher)
- String simulatedInput = String.join("\n",
- "kurz123", // zu kurz
- "PasswortMit2BUCHSTABEN", // kein Sonderzeichen, keine Ziffern
- "AbcAbcAbc123!@#", // zu kurz
- "abcABC123!@#abcABC123!@#", // gültiges Passwort
- ""
- );
-
- // Eingabe simulieren
- ByteArrayInputStream in = new ByteArrayInputStream(simulatedInput.getBytes());
- System.setIn(in);
-
- // Ausgabe abfangen
- ByteArrayOutputStream outContent = new ByteArrayOutputStream();
- PrintStream originalOut = System.out;
- System.setOut(new PrintStream(outContent));
-
- // Main-Methode ausführen
- Passwort_Check.main(new String[]{});
-
- // Wiederherstellen der Originalstreams
- System.setOut(originalOut);
- System.setIn(System.in);
-
- String output = outContent.toString();
-
- // Wichtige Ausgaben überprüfen
- assertTrue(output.contains("Passwort ist zu kurz!"));
- assertTrue(output.contains("Es fehlen Ziffern!") || output.contains("Es fehlen Sonderzeichen!"));
- assertTrue(output.contains("Passwort ist sicher."));
- assertTrue(output.contains("...und Tschüss"));
- }
-}
-
diff --git a/Unbenanntes Diagramm.drawio b/Unbenanntes Diagramm.drawio
new file mode 100644
index 0000000..08b4f01
--- /dev/null
+++ b/Unbenanntes Diagramm.drawio
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+