Java功能點:md5加密

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;  
} 

調用:String md5key = getMD5(md5String.getBytes("UTF-8"));           //md5String 爲要加密的字符串

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章