本文实例讲述了java实现MD5加密的方法。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
private String getMD5Str(String str) {
MessageDigest messageDigest = null ;
try {
messageDigest = MessageDigest.getInstance( "MD5" );
messageDigest.reset();
messageDigest.update(str.getBytes( "UTF-8" ));
} catch (NoSuchAlgorithmException e) {
System.out.println( "NoSuchAlgorithmException caught!" );
System.exit(- 1 );
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
byte [] byteArray = messageDigest.digest();
StringBuffer md5StrBuff = new StringBuffer();
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]));
}
return md5StrBuff.toString();
}
|
方法二
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
import java.security.MessageDigest;
public class Test_MD5{
public final static String MD5(String s) {
char hexDigits[] = { '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , 'a' , 'b' , 'c' , 'd' , 'e' , 'f' };
try {
byte [] strTemp = s.getBytes();
//使用MD5创建MessageDigest对象
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];
//System.out.println((int)b);
//将没个数(int)b进行双字节加密
str[k++] = hexDigits[b >> 4 & 0xf ];
str[k++] = hexDigits[b & 0xf ];
}
return new String(str);
} catch (Exception e) {
return null ;
}
}
//测试
public static void main(String[] args) {
System.out.println( "http://www.baidu.com/的MD5加密后:/n" +Test_MD5.MD5( "http://www.baidu.com/" ));
}
}
|
希望本文所述对大家java程序设计有所帮助。
原文链接:http://blog.sina.com.cn/s/blog_6c769cfa0100x3j7.html