Dlho som sa rozčuľoval prečo nie je v Jave funkcia ktorá by mi vygenerovala z reťazca znakov md5 odtlačok. Nakoniec som to vzdal a začal dom hľadať po internete, že ako mám spraviť nejakú takú funkciu.
Samozrejme, že som našiel kopec možnosti ako to spraviť a tu je jedna z nich:
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
public class hash
{
public static String md5Java(String message)
{
String digest = null;
try {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] hash = md.digest(message.getBytes("UTF-8"));
StringBuilder sb = new StringBuilder(2 * hash.length);
for (byte b : hash) {
sb.append(String.format("%02x", b & 0xff));
}
digest = sb.toString();
} catch (UnsupportedEncodingException ex) {
//Logger.getLogger(StringReplace.class.getName()).log(Level.SEVERE, null, ex);
} catch (NoSuchAlgorithmException ex) {
//Logger.getLogger(StringReplace.class.getName()).log(Level.SEVERE, null, ex);
}
return digest;
}
public static void main(String args[])
{
System.out.println("MD5 textu 'ahoj' " + md5Java("ahoj"));
}
}
Samozrejme pomocou tejto funkcie môžete vytvárať aj iné odtlačky ako napríklad SHA1. Zoznam nájdete tu.
Komentáre
Zverejnenie komentára