本人博客地址:http://my.oschina.net/lijindou/blogjava
轉載請標明原址:http://my.oschina.net/lijindou/blog/717003算法
/** * Created by admin on 2016/7/21. */ import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * 對外提供getMD5(String)方法 * * @author randyjia */ public class MD5 { public static String getMD5(String val) throws NoSuchAlgorithmException { MessageDigest md5 = MessageDigest.getInstance("MD5"); md5.update(val.getBytes()); byte[] m = md5.digest();//加密 return getString(m); } private static String getString(byte[] b) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < b.length; i++) { sb.append(b[i]); } return sb.toString(); } }
使用的時候直接 MD5.getMD5(String);app
補充 2016/08/23ui
import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5Utils { /* * MD5加密算法 * 生成的是32位的算法 */ public static String encode(String text){ try { MessageDigest digest = MessageDigest.getInstance("md5"); byte[] result = digest.digest(text.getBytes()); StringBuilder sb =new StringBuilder(); for(byte b:result){ int number = b&0xff; String hex = Integer.toHexString(number); if(hex.length() == 1){ sb.append("0"+hex); }else{ sb.append(hex); } } return sb.toString(); } catch (NoSuchAlgorithmException e) { // TODO Auto-generated catch block e.printStackTrace(); } return "" ; }
上面的方法生成的是32位小寫的,若是須要生成大寫的就在sb.toString()後加.toUpperCase()即可。加密
32位小寫.net
return sb.toString();
32位大寫code
return sb.toString().toUpperCase();
16位小寫blog
return sb.toString().substring(8,24);
16位大寫md5
return sb.toString().substring(8,24).toUpperCase();