1>MD5加密算法(32位密文小写)算法
/** * MD5加密 * @param s 须要加密的字符串 * @return 返回密文 */ public static String md5(String s) { try { MessageDigest md5 = MessageDigest.getInstance("MD5"); md5.update((s).getBytes("UTF-8")); byte b[] = md5.digest(); int i; StringBuffer buf = new StringBuffer(""); for(int j=0; j<b.length; j++){ i = b[j]; System.out.println("--0-->"+i); if(i<0){ i+=256; } if(i<16){ buf.append("0"); }
//Integer.toHexString((byteVar & 0x000000FF) | 0xFFFFFF00).substring(6)
//byteVar & 0x000000FF的做用是,若是byteVar是负数,则会清除前面24个零,正的byte整型不受影响。(...) | 0xFFFFFF00的做用是,若是byteVar 是正数,则置前24位为一,这样toHexString输出一个小于等于15的byte整型的十六进制时,倒数第二位为零且不会被丢弃,这样能够经过substring方法进行截取最后两位便可。 //byteVar & 0x000000FF <==> byteVar + 256
buf.append(Integer.toHexString(i)); } return buf.toString(); } catch (Exception e) { e.printStackTrace(); return null; } }
2>MD5加密算法(32位密文大写)app
直接使用str.toUpperCase() 便可;加密
3>MD5加密算法(16位的)spa
直接截取32位的str.subString(8,24) 便可;code