Вот алгоритм, который я использую для шифрования с MD5.It возвращает ваш зашифрованный вывод.
public class CryptWithMD5 {
private static MessageDigest md;
public static String cryptWithMD5(String pass){
try {
md = MessageDigest.getInstance("MD5");
byte[] passBytes = pass.getBytes();
md.reset();
byte[] digested = md.digest(passBytes);
StringBuffer sb = new StringBuffer();
for(int i=0;i<digested.length;i++){
sb.append(Integer.toHexString(0xff & digested[i]));
}
return sb.toString();
} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(CryptWithMD5.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
}
Вы не можете расшифровать MD5, но вы можете сравнить выходы, так как если вы поставите ту же строку в этом методе он будет возвращать тот же зашифрованный output.If вы хотите расшифровать вам нужно, чтобы использовать SHA.You будет никогда используйте decription для пароля пользователя. Для этого всегда используйте MD5. Это исключение довольно избыточно. Оно никогда не бросит его.Когда вы добавляете пароль в базу данных, вы добавляете то, что этот метод возвращает. Для входа в систему вы их сравниваете.
Вы также можете прочитать http://www.codinghorror.com/blog/2007/09/youre-probably-storing-passwords-incorrectly.html –
Это не шифрование: это хеширование MD5. Хеширование - это правильная вещь, которую нужно сделать, но вы должны называть ее по ее правильному имени. SHA-хэш будет гораздо более безопасным. – EJP