package de.pinyto.ctSESAM; /** * Check passwords for their properties. */ public class PasswordAnalyzer { public static boolean contains(String password, boolean containsLetters, boolean containsDigits, boolean containsExtra) { boolean contains = true; if (containsLetters && !PasswordAnalyzer.containsUpperCaseLetters(password)) { contains = false; } if (containsLetters && !PasswordAnalyzer.containsLowerCaseLetters(password)) { contains = false; } if (containsDigits && !PasswordAnalyzer.containsDigits(password)) { contains = false; } if (containsExtra && !PasswordAnalyzer.containsExtra(password)) { contains = false; } return contains; } public static boolean containsLowerCaseLetters(String password) { if (password == null) { return false; } String defaultCharacterSetLowerCase = "abcdefghijklmnopqrstuvwxyz"; for (int i = 0; i < password.length(); i++) { for (int j = 0; j < defaultCharacterSetLowerCase.length(); j++) { if (password.charAt(i) == defaultCharacterSetLowerCase.charAt(j)) { return true; } } } return false; } public static boolean containsUpperCaseLetters(String password) { if (password == null) { return false; } String defaultCharacterSetUpperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; for (int i = 0; i < password.length(); i++) { for (int j = 0; j < defaultCharacterSetUpperCase.length(); j++) { if (password.charAt(i) == defaultCharacterSetUpperCase.charAt(j)) { return true; } } } return false; } public static boolean containsDigits(String password) { if (password == null) { return false; } String defaultCharacterSetDigits = "0123456789"; for (int i = 0; i < password.length(); i++) { for (int j = 0; j < defaultCharacterSetDigits.length(); j++) { if (password.charAt(i) == defaultCharacterSetDigits.charAt(j)) { return true; } } } return false; } public static boolean containsExtra(String password) { if (password == null) { return false; } String defaultCharacterSetExtra = "#!\"~|@^°$%&/()[]{}=-_+*<>;:."; for (int i = 0; i < password.length(); i++) { for (int j = 0; j < defaultCharacterSetExtra.length(); j++) { if (password.charAt(i) == defaultCharacterSetExtra.charAt(j)) { return true; } } } return false; } }