Ich versuche mich einzuloggen, wo das eingegebene Passwort und der Benutzername mit meiner Datenbank verglichen werden und wenn beide übereinstimmen, können Sie sich anmelden. Ich habe gerade angefangen mit MySQL und BCrypt zu arbeiten. Hier ist mein Code so weit:Vergleichen Sie das eingegebene Passwort mit BCrypt hashed Passwort in der Datenbank
@FXML
void anmeldenButton(ActionEvent event) throws NamingException, ClassNotFoundException {
String myUrl = "jdbc:mysql://localhost:3306/pwmanager?verifyServerCertificate=false&useSSL=true";
Connection conn = null;
username = tfuser1.getText().toString();
try {
conn = DriverManager.getConnection(myUrl, "", "");
query = "SELECT benutzername, passwort FROM nutzer WHERE (benutzername = ? and passwort = ?)";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, username);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
while (rs.isBeforeFirst()) {
checkUser = rs.getString(1);
checkPass = rs.getString(3);
if (BCrypt.checkpw(pf1.getText(), checkPass) && (checkUser.equals(username))) {
System.out.println("yay");
} else {
System.out.println("ney");
}
}
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
Vielen Dank für Ihre Hilfe!
Die Frage fehlt ...? –
ahh s *** Entschuldigung! Ich bekomme kein Ergebnis! Die if-Anweisung ist nie wahr oder falsch –
Sie haben eine wenn es zwei Bedingungen gibt. Ist es dir eingefallen, einen Debugger und/oder zusätzliche print-Anweisungen zu verwenden, um vielleicht alle Details zu verstehen, um zu verstehen, warum das, wenn es für seinen anderen Zweig geht? – GhostCat