对java中的字符串进行md5加密有两种加密方法:
第一种加密法,加密后是一个24位的字符串,最后两位是==,代码如下:
public static String md5(String str) {
String s=str;
if(s==null){
return "";
}else{
String value = null;
MessageDigest md5 = null;
try {
md5 = MessageDigest.getInstance("MD5");
BASE64Encoder baseEncoder = new BASE64Encoder();
value = baseEncoder.encode(md5.digest(s.getBytes("utf-8")));
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return value;
}
}
第二种加密法,加密后是一个关于16进制的32位字符串,代码是:
public final static String MD5(String s) {
String result = "";
char hexDigits[] =
{ '0', '1', '2', '3',
'4', '5', '6', '7',
'8', '9', 'a', 'b',
'c', 'd', 'e', 'f' };
try {
byte[] strTemp = s.getBytes();
MessageDigest mdTemp = MessageDigest.getInstance("MD5");
mdTemp.update(strTemp);
byte[] md = mdTemp.digest();
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte b = md[i];
str[k++] = hexDigits[b >> 4 & 0xf];
str[k++] = hexDigits[b & 0xf];
}
result = new String(str);
} catch (Exception e){
e.printStackTrace();
}
return result;
}