0

我有一个网站,一旦注册,您就可以登录。要登录,php 代码通过执行以下操作检查密码是否正确:

       $subuser = stripslashes($subuser);
       $result = $database->confirmUserPass($subuser, md5($subpass));

$subuser 是用户在登录时输入的用户名。$subpass 是用户在登录时输入的密码。

现在 php 代码加密给定的密码($subpass)并检查数据库以查看加密是否匹配。

现在这里的问题是:我目前正在制作一个内置网站登录表单的java应用程序。我希望java代码做与php代码相同的事情。我已经阅读了多个地方,但我仍然不明白该怎么做。这是到目前为止的java代码:

String password = "pass";
        try {
        MessageDigest md = MessageDigest.getInstance("MD5");
        md.update(password.getBytes(), 0, password.length());
        System.out.println(new BigInteger(1, md.digest()).toString(32));

        } catch(NoSuchAlgorithmException e) {
            e.printStackTrace();
        }

当我在java中运行这段代码时,它意味着给我与PHP中相同的加密字符串,但问题是它没有...... :(有谁知道我做错了什么/错过了什么? 谢谢

如果需要更多信息,请询问我,我希望能编辑这篇文章并包含更多详细信息。

4

1 回答 1

0

将第 4 行和第 5 行修改为

md.update(password.getBytes());
System.out.println(new BigInteger(1, md.digest()).toString(16));
于 2013-04-03T16:01:04.897 回答