md 5暗号化ツールクラス(16ビット、32ビット、64ビット)
1700 ワード
/**
*
* @param str
* @param isUpper (false ,true )
* @param bit (16,32,64)
* @return
*/
public static String getMD5(String str, boolean isUpper, Integer bit) {
String md5 = null;
try {
//
MessageDigest md = MessageDigest.getInstance("md5");
if (bit == 64) {
BASE64Encoder bw = new BASE64Encoder();
md5 = bw.encode(md.digest(str.getBytes("utf-8")));
} else {
// MD5
md.update(str.getBytes());
byte b[] = md.digest();
int i;
StringBuilder sb = new StringBuilder();
for (byte aB : b) {
i = aB;
if (i < 0) {
i += 256;
}
if (i < 16) {
sb.append("0");
}
sb.append(Integer.toHexString(i));
}
md5 = sb.toString();
if (bit == 16) {
// 32 md5 16
md5 = md5.substring(8, 24);
if (isUpper) {
md5 = md5.toUpperCase();
}
return md5;
}
}
//
if (isUpper) {
md5 = md5.toUpperCase();
}
} catch (Exception e) {
e.printStackTrace();
}
return md5;
}
転載先:https://blog.csdn.net/weixin_34397224/article/details/80284047