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

标签 java jpa

需要帮助将文本与数据库中的 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/

相关文章:

java - 如何按顺序生成 id - Play Framework 2.3.4

java - 如何指定方法 AnyObject<? super T,字符串>

java - JPA错误: InvalidDataAccessApiUsageException: detached entity passed to persist

java - SolrJ 是否执行缓存?

java - 是否可以弱引用 XML 布局中声明的 ImageView?

java - 有没有办法在 avdl 文件中定义类似数字的枚举

java - java 1.6 中 String.split 的行为?

java - 请提供当类和序列化对象具有相同的serialVersionUID时反序列化期间失败的场景/条件?

java - 如何使用 JPA 和 Hibernate 在 UTC 时区中存储日期/时间和时间戳

spring - 使用 JPA 实体作为域实体的洋葱架构