You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
2.4 KiB
81 lines
2.4 KiB
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
|
|
}
|
|
}
|
|
}
|
|
|