MD5加密java

来源:互联网 发布:开发游戏的软件 编辑:程序博客网 时间:2024/06/07 14:50

  • public class MD5Util {  
  •   
  •     public String getMD5(byte[] source){  
  •         String s=null;  
  •         //用来将字节转换成16进制表示的字符  
  •         char[] hexDigits={'0','1','2','3','4','5','6','7','8','9',  
  •                 'a','b','c','d','e','f'};  
  •         try {  
  •             MessageDigest md=MessageDigest.getInstance("MD5");  
  •             md.update(source);  
  •             //MD5的计算结果是一个128位的长整数,用字节表示为16个字节  
  •             byte[] tmp=md.digest();  
  •             //每个字节用16进制表示的话,使用2个字符(高4位一个,低4位一个),所以表示成16进制需要32个字符  
  •             char[] str=new char[16*2];  
  •             int k=0;//转换结果中对应的字符位置  
  •             for(int i=0;i<16;i++){//对MD5的每一个字节转换成16进制字符  
  •                 byte byte0=tmp[i];  
  •                 str[k++]=hexDigits[byte0>>>4 & 0xf];//对字节高4位进行16进制转换  
  •                 str[k++]=hexDigits[byte0 & 0xf];    //对字节低4位进行16进制转换  
  •             }  
  •             s=new String(str);  
  •         } catch (NoSuchAlgorithmException e) {  
  •             e.printStackTrace();  
  •         }  
  •         return s;  
  •     }  
  •     public static void main(String[] args) {  
  •         MD5Util md5Util=new MD5Util();  
  •         String result=md5Util.getMD5("abc".getBytes());  
  •         System.out.println(result);  
  •     }  
  •   
  • }

  • 0 0