java,对字符串进行MD5加密

1、MessageDigest 类为应用程序提供信息摘要算法的功能。

2、获取指定摘要算法的 MessageDigest 对象:如:MessageDigest.getInstance("MD5")

3、为报文摘要对象提供数据,调用update(byte input) 方法更新摘要

4、调用digest()方法完成计算

[java]view plaincopy
  1. /**

  2. *

  3. * 获取字符串的md5值 (十六进制,长度为32位)。MessageDigest提供信息摘要算法的功能,

  4. *

  5. * @param str

  6. * @return 返回md5串

  7. */

  8. public String encodeStrByMd5(String str) {  

  9.    String md5Str = "";  

  10. try {  

  11.        MessageDigest md = MessageDigest.getInstance("MD5");  

  12. // 使用指定byte[]更新摘要

  13.        md.update(str.getBytes());  

  14. // 完成计算,返回结果数组

  15. byte[] b = md.digest();  

  16.        md5Str = this.byteArrayToHex(b);  

  17.    } catch (Exception e) {  

  18. // TODO Auto-generated catch block

  19.        e.printStackTrace();  

  20.    }  

  21. return md5Str;  

  22. }  

[java]view plaincopy
[java]view plaincopy
  1. /**

  2. * 将字节数组转为十六进制字符串

  3. *

  4. * @param bytes

  5. * @return 返回16进制字符串

  6. */

  7. public String byteArrayToHex(byte[] bytes) {  

  8. // 字符数组,用来存放十六进制字符

  9. char[] hexReferChars = { '0', '1', '2', '3', '4', '5', '6', '7', '8',  

  10. '9', 'A', 'B', 'C', 'D', 'E', 'F' };  

  11. // 一个字节占8位,一个十六进制字符占4位;十六进制字符数组的长度为字节数组长度的两倍

  12. char[] hexChars = newchar[bytes.length * 2];  

  13. int index = 0;  

  14. for (byte b : bytes) {  

  15. // 取字节的高4位

  16.        hexChars[index++] = hexReferChars[b >>> 4 & 0xf];  

  17. // 取字节的低4位

  18.        hexChars[index++] = hexReferChars[b & 0xf];  

  19.    }  

  20. returnnew String(hexChars);  

  21. }  

/**
* <<有符号左移,补0;>>有符号右移,正数补0,负数补1;>>>无符号右移,补0
*

*/

更多详情请访问http://www.sctarena.com

你可能感兴趣的:(java,字符串,update,MD5加密,应用程序)