JAVA MD5加密

  1. /** 
  2.  * Java密码加密 
  3.  * Java代码 
  4.  */  
  5. package com.baobaotao.common;  
  6.   
  7. import java.security.MessageDigest;  
  8.   
  9. /** 
  10.  * 对密码进行加密和验证的类 
  11.  */  
  12. public class CipherUtil {  
  13.   
  14.     // 十六进制下数字到字符的映射数组  
  15.     private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",  
  16.             "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };  
  17.   
  18.     /** * 把inputString加密 */  
  19.     public static String generatePassword(String inputString) {  
  20.         return encodeByMD5(inputString);  
  21.     }  
  22.   
  23.     /** 对字符串进行MD5加密 */  
  24.     private static String encodeByMD5(String originString) {  
  25.         if (originString != null) {  
  26.             try {  
  27.                 // 创建具有指定算法名称的信息摘要  
  28.                 MessageDigest md = MessageDigest.getInstance("MD5");  
  29.                 // 使用指定的字节数组对摘要进行最后更新,然后完成摘要计算  
  30.                 byte[] results = md.digest(originString.getBytes());  
  31.                 // 将得到的字节数组变成字符串返回  
  32.                 String resultString = byteArrayToHexString(results);  
  33.                 return resultString.toUpperCase();  
  34.             } catch (Exception ex) {  
  35.                 ex.printStackTrace();  
  36.             }  
  37.         }  
  38.         return null;  
  39.     }  
  40.   
  41.     /** 
  42.      * 转换字节数组为十六进制字符串 
  43.      *  
  44.      * @param 字节数组 
  45.      * @return 十六进制字符串 
  46.      */  
  47.     private static String byteArrayToHexString(byte[] b) {  
  48.         StringBuffer resultSb = new StringBuffer();  
  49.         for (int i = 0; i < b.length; i++) {  
  50.             resultSb.append(byteToHexString(b[i]));  
  51.         }  
  52.         return resultSb.toString();  
  53.     }  
  54.   
  55.     /** 将一个字节转化成十六进制形式的字符串 */  
  56.     private static String byteToHexString(byte b) {  
  57.         int n = b;  
  58.         if (n < 0)  
  59.             n = 256 + n;  
  60.         int d1 = n / 16;  
  61.         int d2 = n % 16;  
  62.         return hexDigits[d1] + hexDigits[d2];  
  63.     }  
  64.       /** 测试 */  
  65.     public static void main(String[] args){  
  66.         String pwd = CipherUtil.generatePassword("123456");  
  67.         System.out.println(pwd);  
  68.     }  
  69. }  
原文地址:https://www.cnblogs.com/Alex80/p/14480679.html