本文实例讲述了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