我以这种方式创建 MD5:
public void encrypeUsername(String sessionid)
{
byte[] defaultBytes = sessionid.getBytes();
try
{
MessageDigest algorithm = MessageDigest.getInstance("MD5");
algorithm.reset();
algorithm.update(defaultBytes);
byte messageDigest[] = algorithm.digest();
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < messageDigest.length; i++)
{
hexString.append(Integer.toHexString(0xFF & messageDigest[i]));
}
System.out.println("sessionid " + sessionid + " md5 version is " + hexString.toString());
}
catch (Exception e)
{
e.printStackTrace();
}
}
对于输入 123456,我们得到 MD5:e1adc3949ba59abbe56e057f2f883e
我想创建另一种方法来验证结果。
例如,如果我输入 e1adc3949ba59abbe56e057f2f883e 和“123456”,那么我得到的结果是:true/false。
知道如何实现吗?
谢谢, 射线。
最佳答案
String pass = "123456";
String secret = "e1adc3949ba59abbe56e057f2f883e";
if encrypeUsername(pass).equals(secret) System.out.printl("ok!")
请记住,md5 是单向的。很难*再次从 secret 中取回密码。
(*)现在对于弱密码来说没那么难了。
关于java - 如何验证MD5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13031179/