Я добавил программу проверки паролей для своей программы, я думал, что она работает нормально, так как я мог сохранить пароль в файле (в кодировке) и мог ввести пароль в поле пароля, и это позволило мне без проблем войти в основную программу. Однако сегодня я тестировал больше и обнаружил, что некоторые пароли не работают, и я понятия не имею, почему это так.
Я включил оба метода: один кодирует пароль, другой декодирует его. Я включил метод проверки, который считывает файл паролей, декодирует пароль и проверяет, совпадает ли введенный пароль с сохраненным. Я не мог узнать, какие типы паролей не работают, это не длина, больше как символы, которые были использованы.
Заранее спасибо
public static char[] encode(int offset, char[] charArray) {
char[] arrEnc = new char[charArray.length];
for (int i = 0; i < charArray.length; i++) {
int verschiebung = (charArray[i] + offset) % 128;
arrEnc[i] = (char) (verschiebung);
}
return arrEnc;
}
public static char[] decode(int offset, char[] charArray) {
char[] arrEnc = new char[charArray.length];
int verschiebung;
for (int i = 0; i < charArray.length; i++) {
if (charArray[i] - offset < 0) {
verschiebung = charArray[i] - offset + 128;
} else {
verschiebung = (charArray[i] - offset) % 128;
arrEnc[i] = (char) (verschiebung);
}
}
return arrEnc;
}
private void verify() {
try {
FileReader fr = new FileReader(pws);
BufferedReader br = new BufferedReader(fr);
char[] arr = br.readLine().toCharArray();
char[] newArr = decode(arr.length, arr);
String pw = new String(newArr);
String masterPw = "Kassa";
if (passwordField.getText().equals(pw) ||
passwordField.getText().equals(masterPw)) {
setVisible(false);
starto.setVisible(true);
br.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
Любой пароль должен быть в состоянии сохранить и расшифровать