diff --git a/src/main/java/org/example/PasswordGenerator.java b/src/main/java/org/example/PasswordGenerator.java index f2baa73..70336b7 100644 --- a/src/main/java/org/example/PasswordGenerator.java +++ b/src/main/java/org/example/PasswordGenerator.java @@ -12,17 +12,23 @@ public static void main(String[] args) { } public static String generatePassword() { + while (true) { + String password = generateNonValidatedPassword(); + if (PasswordValidator.isValid(password)) { + + return password; + } + } + } + + private static String generateNonValidatedPassword() { Random random = new Random(); char[] passwordElements = new char[MINIMUM_PASSWORD_LENGTH]; - String password = ""; - do { - for (int i = 0; i < MINIMUM_PASSWORD_LENGTH; i++) { - // Magic! - passwordElements[i] = (char) (33 + random.nextInt(94)); - } - password = new String(passwordElements); - } while (!PasswordValidator.isValid(password)); + for (int i = 0; i < MINIMUM_PASSWORD_LENGTH; i++) { + // Magic! + passwordElements[i] = (char) (33 + random.nextInt(94)); + } - return password; + return new String(passwordElements); } } diff --git a/src/main/java/org/example/PasswordValidator.java b/src/main/java/org/example/PasswordValidator.java index 2b345a3..2e9c38a 100644 --- a/src/main/java/org/example/PasswordValidator.java +++ b/src/main/java/org/example/PasswordValidator.java @@ -1,8 +1,8 @@ package org.example; public class PasswordValidator { - static int MINIMUM_PASSWORD_LENGTH = 8; private static final String[] COMMONLY_USED = {"Password1!", "Aa345678"}; + static int MINIMUM_PASSWORD_LENGTH = 8; public static boolean isValid(String password) { return isLengthCorrect(password) @@ -27,6 +27,7 @@ public static boolean containsUppercaseLowercase(String password) { public static boolean isNotCommonlyUsed(String password) { for (String commonlyUsedPassword : COMMONLY_USED) { if (commonlyUsedPassword.equals(password)) { + return false; } }