我需要解密阶段,以便客户端可以登录到他的帐户

时间:2016-05-28 00:30:48

标签: java hash cryptography passwords md5

public static final String encodeMd5(final String s){
        final String MD5 = "MD5";
        try {
            // Create MD5 Hash
            MessageDigest digest = MessageDigest
                    .getInstance(MD5);
            digest.update(s.getBytes());
            byte messageDigest[] = digest.digest();

            // Create Hex String
            StringBuilder hexString = new StringBuilder();
            for (byte aMessageDigest : messageDigest) {
                String h = Integer.toHexString(0xFF & aMessageDigest);
                while (h.length() < 2)
                    h = "0" + h;
                hexString.append(h);
            }
            return hexString.toString();

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

现在我需要解密阶段,以便客户端可以登录他的帐户。

1 个答案:

答案 0 :(得分:3)

你有一个基本的误解,可能会让你在课程中失败。修改。 MD5不加密。它是哈希。你不能解密它。你不需要解密它。您需要MD5输入的密码并将其与存储的真实密码的MD5进行比较。

几乎可以肯定,您还需要将数据库函数用于MD5和十六进制编码,而不是Java代码。如果确实需要十六进制编码。