gpt4 book ai didi

java - JPA如何将输入登录字段与数据库中存储的md5进行比较

转载 作者:行者123 更新时间:2023-12-02 06:37:25 25 4
gpt4 key购买 nike

需要帮助将文本与数据库中的 md5 进行比较,我该怎么做;S 所以我添加了更多代码,但它仍然不起作用,“无效的用户名/密码”。标 checkout 现了,我很困惑,哈哈,请帮忙:D

    User user = em.find(User.class, (int) 1);
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(user.get(0).getStrUserPassword().getBytes());
byte byteData[] = md.digest();

StringBuffer sb = new StringBuffer();
for (int i = 0; i < byteData.length; i++) {
sb.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16).substring(1));

if (txtUsername.getText().equals(user.get(0).getStrUserName())
&& txtPassword.getText().equals(sb.toString())) {
this.dispose();
SubMenu sm = new SubMenu();
sm.setVisible(true);
} else if (txtUsername.getText().trim().length() == 0) {
lblErrorMessage.setText("Input Username.");
txtUsername.requestFocus();
} else if (txtPassword.getText().trim().length() == 0) {
lblErrorMessage.setText("Input Password.");
txtPassword.requestFocus();
} else {
lblErrorMessage.setText("Invalid Username/Password.");
}
}
} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(LoginForm.class.getName()).log(Level.SEVERE, null, ex);
}

最佳答案

如果您想将输入的密码与数据库中的密码md5进行匹配,则需要先将输入的密码转换为MD5,然后将其与数据库中的密码进行比较。

我想您已经知道如何将字符串转换为 MD5,因为当您将密码存储在数据库中时您已经这样做了。无论如何,这就是:

MessageDigest md = MessageDigest.getInstance("MD5");
md.update(password.getBytes());
byte byteData[] = md.digest();

此外,您不需要从数据库中检索所有用户,只需获取与用户名匹配的用户即可。

关于java - JPA如何将输入登录字段与数据库中存储的md5进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19491201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com