md5加密

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;


/*
 * md5加密算法
 * */
public class EncodeUserInfo {
   //十六进制下数字到字符的映射数组  
    private final static String[] hexDigits = {"0", "1", "2", "3", "4",  
        "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};
   
   public static String encodeByMD5(String message){
      if(message!=null){
         //创建具有指定算法名称的信息摘要
         try {
            MessageDigest md=MessageDigest.getInstance("MD5");
            //使用指定字节数组对摘要进行最后的更新,然后完成摘要计算
            byte[] results=md.digest(message.getBytes());
            //将得到的字节数组变成字符串返回
            String resultMessage=byteArrayToHexString(results);
            return resultMessage.toUpperCase();
         } catch (NoSuchAlgorithmException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
         }
      }
      return null;
   }
   //将一个字节数组转换为十六进制字符串
   private static String byteArrayToHexString(byte[] results) {
      StringBuffer resultSb=new StringBuffer();
      for(int i=0;i<results.length;i++){
         resultSb.append(byteArrayToHexString(results[i]));
      }
      return resultSb.toString();
   }
   private static Object byteArrayToHexString(byte b) {
      int n=b;
      if(n<0)
         n=256+n;
      int d1=n/16;
      int d2=n%16;
      return hexDigits[d1]+hexDigits[d2];
   }
}
原文地址:https://www.cnblogs.com/hujingwei/p/4736553.html