From 21eab99bc57cdc8d8676aa8815ff0c74115eca23 Mon Sep 17 00:00:00 2001 From: AndreasW <1720808@stud.hs-mannheim.de> Date: Fri, 30 May 2025 14:58:46 +0200 Subject: [PATCH] Steuerzeichen --- Passwort_Check.java | 4 +++- Test_Passwort_Check.java | 27 ++++++++++++++++++--------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/Passwort_Check.java b/Passwort_Check.java index 05bc04a..1bf7796 100644 --- a/Passwort_Check.java +++ b/Passwort_Check.java @@ -30,7 +30,9 @@ public class Passwort_Check { // [^/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].*"); + // [^A-Za-z0-9\\x00-\\x1F\\x7F] [^A-Za-z0-9\t\r\n] + + return passwort.matches(".*[^A-Za-z0-9\\x00-\\x1F\\x7F].*[^A-Za-z0-9\\x00-\\x1F\\x7F].*[^A-Za-z0-9\\x00-\\x1F\\x7F].*"); } public static void main(String[] args) { diff --git a/Test_Passwort_Check.java b/Test_Passwort_Check.java index 948b947..c2be533 100644 --- a/Test_Passwort_Check.java +++ b/Test_Passwort_Check.java @@ -7,12 +7,12 @@ public class Test_Passwort_Check { @Test public void testCheckLaenge() { // Länge ist zu kurz - assertFalse(Passwort_Check.checkLaenge("KurzesPasswort123!")); + 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!@#")); + assertTrue(Passwort_Check.checkLaenge("LangesPasswortMit123!@#")); } @Test @@ -23,7 +23,7 @@ public class Test_Passwort_Check { assertFalse(Passwort_Check.checkKleinBuchstaben("HELLO!WorLD!ICHLIEBEJAVA")); // nur 2 Kleinbuchstaben // genügend Kleinbuchstaben - assertTrue(Passwort_Check.checkKleinBuchstaben("abc DEF 123!@#")); + assertTrue(Passwort_Check.checkKleinBuchstaben("abc DEF 123!@#")); } @@ -34,7 +34,7 @@ public class Test_Passwort_Check { 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.checkGrossBuchstaben("ABCdef123!@#")); assertTrue(Passwort_Check.checkKleinBuchstaben("HelloWorldichliebejava")); } @@ -58,12 +58,7 @@ public class Test_Passwort_Check { 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++) { @@ -72,5 +67,19 @@ public class Test_Passwort_Check { assertTrue(Passwort_Check.checkSonderZeichen("abcABC123" + c + c + c)); // 3 identische Sonderzeichen } + String steuerzeichen = ""; + for (int i = 0; i <= 31; i++) { + steuerzeichen += (char) i; + } + steuerzeichen += (char) 127; + for (int i = 0; i < steuerzeichen.length(); i++) { + String c = "" + steuerzeichen.charAt(i); + System.out.println(c); + assertFalse(Passwort_Check.checkSonderZeichen("abcABC123" + c + c)); // nur 2 Sonderzeichen + assertFalse(Passwort_Check.checkSonderZeichen("abcABC123" + c + c + c)); // 3 identische Sonderzeichen + } + 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 } }