package test;
import java.security.MessageDigest;
public class Md5 {
/**
* MD5加密
* @param message 要进行MD5加密的字符串
* @return 加密结果为32位小写字符串
*/
public static String getMD532Big(String message) {
MessageDigest messageDigest = null;
StringBuffer md5StrBuff = new StringBuffer();
try {
messageDigest = MessageDigest.getInstance("MD5");
messageDigest.reset();
messageDigest.update(message.getBytes("UTF-8"));
byte[] byteArray = messageDigest.digest();
for (int i = 0; i < byteArray.length; i++)
{
if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));
else
md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
}
} catch (Exception e) {
throw new RuntimeException();
}
return md5StrBuff.toString().toUpperCase();//字母大写
}
/**
* MD5加密
* @param message 要进行MD5加密的字符串
* @return 加密结果为32位大写字符串
*/
public static String getMD532Small(String message) {
MessageDigest messageDigest = null;
StringBuffer md5StrBuff = new StringBuffer();
try {
messageDigest = MessageDigest.getInstance("MD5");
messageDigest.reset();
messageDigest.update(message.getBytes("UTF-8"));
byte[] byteArray = messageDigest.digest();
for (int i = 0; i < byteArray.length; i++)
{
if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));
else
md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
}
} catch (Exception e) {
throw new RuntimeException();
}
return md5StrBuff.toString();
}
/**
* MD5加密
* @param message 要进行MD5加密的字符串
* @return 加密结果为16位大写字符串
*/
static String MD516Big(String message) {
String result = "";
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(message.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
result = buf.toString().substring(8, 24).toUpperCase();
} catch (Exception e) {
throw new RuntimeException();
}
return result;
}
/**
* MD5加密
* @param message 要进行MD5加密的字符串
* @return 加密结果为16位小写字符串
*/
static String MD516Small(String message) {
String result = "";
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(message.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
result = buf.toString().substring(8, 24);
} catch (Exception e) {
System.out.println(e);
}
return result;
}
}