通用32位MD5算法总结:MD5Util

来源:互联网 发布:淘宝上组装电脑 编辑:程序博客网 时间:2024/05/16 14:29

1.小写:

比如

abcdef
e80b5017098950fc58aad83c8c14978e


 public static String HEXAndMd5(String plainText) {    try {      MessageDigest md = MessageDigest.getInstance("MD5");      try {        md.update(plainText.getBytes("UTF8"));      } catch (UnsupportedEncodingException e) {        e.printStackTrace();      }      byte b[] = md.digest();      int i;      StringBuffer buf = new StringBuffer(200);      for (int offset = 0; offset < b.length; offset++) {        i = b[offset] & 0xff;        if (i < 16) buf.append("0");        buf.append(Integer.toHexString(i));      }      return buf.toString();    } catch (NoSuchAlgorithmException e) {      LoggerUtil.error("Md5加密异常", e);      return null;    }  }


 



1.大写:

比如

abcdef
E80B5017098950FC58AAD83C8C14978E


   /**     * 获得MD5加密字符串     *     * @param source 源字符串     *     * @return 加密后的字符串     *     */    public static String getMD5(String source) {        String mdString = null;        if (source != null) {            try {//关键是这句                mdString = getMD5(source.getBytes("UTF-8"));            } catch (UnsupportedEncodingException e) {                e.printStackTrace();            }        }        return mdString;    }    /**     * 获得MD5加密字符串     *     * @param source 源字节数组     *     * @return 加密后的字符串     */    public static String getMD5(byte[] source) {        String s = null;        char [] hexDigits = {'0', '1', '2', '3', '4', '5', '6', '7', '8',                '9', 'A', 'B', 'C', 'D', 'E', 'F'};        final int temp = 0xf;        final int arraySize = 32;        final int strLen = 16;        final int offset = 4;        try {            java.security.MessageDigest md = java.security.MessageDigest                    .getInstance("MD5");            md.update(source);            byte [] tmp = md.digest();            char [] str = new char[arraySize];            int k = 0;            for (int i = 0; i < strLen; i++) {                byte byte0 = tmp[i];                str[k++] = hexDigits[byte0 >>> offset & temp];                str[k++] = hexDigits[byte0 & temp];            }            s = new String(str);        } catch (Exception e) {            e.printStackTrace();        }        return s;    }










0 0