package com.company.passwort; public class Password { private char[] passwordaktuell; public Password(char[] passwordAktuell) { this.passwordaktuell = java.util.Arrays.copyOf(passwordAktuell, passwordAktuell.length); } boolean isStrong(String password) { // Enthält mindestens acht Zeichen if (password.length() < 8) { return false; } // Zähle einzelne Zeichentypen int lowercase = 0; int uppercase = 0; int number = 0; int special = 0; // Gehe String durch for (int i = 0; i < password.length(); i++) { char c = password.charAt(i); // Bestimme Character-Code int charCode = charToNumber(c); // ist ein Kleinbuchstabe if (charCode >= charToNumber('a') && charCode <= charToNumber('z')) lowercase += 1; // ist ein Großbuchstabe else if (charCode >= charToNumber('A') && charCode <= charToNumber('Z')) uppercase += 1; // ist eine Ziffer else if (charCode >= charToNumber('0') && charCode <= charToNumber('9')) number += 1; // ist ein Sonderzeichen (! oder *) else if (charCode == charToNumber('!') || charCode == charToNumber('*')) special += 1; } // Sind alle Zeichen gezählt, werte aus // Gebe true zurück, wenn alle Bedingungen erfüllt sind if (lowercase > 0 && uppercase > 0 && number > 0 && special > 0) { return true; } else { return false; } } // Funktion zum Konvertieren eines Buchstabens in Character-Code. Die // Funktion erhält das Zeichen, für den der Code zurückgeliefert wird. int charToNumber(char c) { return (int) c; } public boolean isCorrect(char[] passwordEingabe){ if(passwordEingabe.equals(this.passwordaktuell)){ return true; } else{ return false; } } public boolean changePassword(char[] passwordOld, char[] passwordNew){ if(isCorrect(passwordOld)){ if(isStrong(String.valueOf(passwordNew))){ return true; }else{ return false; } }else{ return false; } } public void deletePassword(char[] passwordOld){ if(isCorrect(passwordOld)){ //Löschen } } }