Как аутентифицировать MD5
Я создал 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.
Есть идеи как этого добиться?
спасибо Рэй
1 ответ
Решение
String pass = "123456";
String secret = "e1adc3949ba59abbe56e057f2f883e";
if encrypeUsername(pass).equals(secret) System.out.printl("ok!")
Помните, что MD5 является односторонним. Трудно * восстановить пароль от секрета снова.
(*) Не так уж и тяжело для слабых паролей.