Java md5

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.

Značky: