标签:
package com.demo; import java.security.MessageDigest; public class MD5Util { private static final String ALGORITHM = "MD5" ; private static final char [] HEX_DIGITS = { ‘0‘ , ‘1‘ , ‘2‘ , ‘3‘ , ‘4‘ , ‘5‘ , ‘6‘ , ‘7‘ , ‘8‘ , ‘9‘ , ‘a‘ , ‘b‘ , ‘c‘ , ‘d‘ , ‘e‘ , ‘f‘ }; /** * encode string * * @param algorithm * @param str * @return String */ public static String encode(String algorithm, String str) { if (str == null ) { return null ; } try { MessageDigest messageDigest = MessageDigest.getInstance(algorithm); messageDigest.update(str.getBytes()); return getFormattedText(messageDigest.digest()); } catch (Exception e) { throw new RuntimeException(e); } } /** * encode By MD5 * * @param str * @return String */ public static String getStringMD5String(String str) { if (str == null ) { return null ; } try { MessageDigest messageDigest = MessageDigest.getInstance(ALGORITHM); messageDigest.update(str.getBytes()); return getFormattedText(messageDigest.digest()); } catch (Exception e) { throw new RuntimeException(e); } } /** * Takes the raw bytes from the digest and formats them correct. * * @param bytes * the raw bytes from the digest. * @return the formatted bytes. */ private static String getFormattedText( byte [] bytes) { int len = bytes.length; StringBuilder buf = new StringBuilder(len * 2 ); // 把密文转换成十六进制的字符串形式 for ( int j = 0 ; j < len; j++) { buf.append(HEX_DIGITS[(bytes[j] >> 4 ) & 0x0f ]); buf.append(HEX_DIGITS[bytes[j] & 0x0f ]); } return buf.toString(); } public static void main(String[] args) { System.out.println(MD5Util.getStringMD5String( "123" )); // System.out.println("111111 MD5 :" // + EncoderHandler.encode("MD5", "111111")); // System.out.println("111111 SHA1 :" // + EncoderHandler.encode("SHA1", "111111")); } } |
标签:
原文地址:http://www.cnblogs.com/mengyuxin/p/4813301.html