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 "";
}
现在我需要解密阶段,以便客户端可以登录他的帐户。
答案 0 :(得分:3)
你有一个基本的误解,可能会让你在课程中失败。修改。 MD5不加密。它是哈希。你不能解密它。你不需要解密它。您需要MD5输入的密码并将其与存储的真实密码的MD5进行比较。
几乎可以肯定,您还需要将数据库函数用于MD5和十六进制编码,而不是Java代码。如果确实需要十六进制编码。