java实现MD5加密算法

摘要

MD5是一个安全的散列算法,输入两个不同的明文不会得到相同的输出值,根据输出值,不能得到原始的明文,即其过程不可逆;所以要解密MD5没有现成的算法,只能用穷举法,把可能出现的明文,用MD5算法散列之后

package cn.util;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Util {
      public static String generateMD5(String input)
      {
        MessageDigest messageDigest = null;
        try {
          messageDigest = MessageDigest.getInstance("MD5");
          messageDigest.reset();
          messageDigest.update(input.getBytes("UTF-8"));
        } catch (NoSuchAlgorithmException e) {
          System.out.println("NoSuchAlgorithmException caught!");
          System.exit(-1);
        } catch (UnsupportedEncodingException e) {
          e.printStackTrace();
        }
        byte[] byteArray = messageDigest.digest();
        StringBuffer md5StrBuff = new StringBuffer();
        for (int i = 0; i < byteArray.length; i++) {
          if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
            md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));
          else {
            md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
          }
        }
        return md5StrBuff.toString();
      }
    }


IT家园
IT家园

网友最新评论 (0)