import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MDFive { public static void main(String[] args) { String md5Str = "cqmy0_YSDS2"; System.out.println(md5(md5Str)); } public static String md5(String md5Str) { StringBuffer sb = new StringBuffer(); try { //获得消息摘要md5 MessageDigest md5 = MessageDigest.getInstance("md5"); //以md5的方式加密 java.security.MessageDigest的设计体现了工厂模式 byte[] tempMd5 = md5.digest(md5Str.getBytes()); int temp = 0; for(byte s: tempMd5) { temp = s; if(temp<0) temp+=256; //负变正 if(temp<16) sb.append("0"); //小于16前面加0,这能保证生成的密文长度为32 //把数字加工成为十六进制字符串——装到字符串缓冲区 sb.append(Integer.toHexString(temp)); } } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return sb.toString().toUpperCase(); } }