日期:2014-05-17  浏览次数:20848 次

各位大虾求帮助
能不能给个MD5的加密算法
顺便解释下,小弟新手

------解决方案--------------------
首先需要说明的是,MD5是做散列的(数据摘要算法),用于检验原始信息是否被修改,不是“加密”。

另外,MD5是Java直接支持的:

Java code

    private String getMD5Str(String str) {  
        MessageDigest messageDigest = null;   
        try {  
            messageDigest = MessageDigest.getInstance("MD5"); // 获取签名器    
            messageDigest.reset();    
            messageDigest.update(str.getBytes("UTF-8"));  
        } catch (NoSuchAlgorithmException e) {  
            System.out.println("NoSuchAlgorithmException caught!");  
            System.exit(-1);  
        } catch (UnsupportedEncodingException e) {  
            e.printStackTrace();  
        }    
        byte[] byteArray = messageDigest.digest();  
  
        StringBuffer md5StrBuff = new StringBuffer(); 
  
        for (int i = 0; i < byteArray.length; i++) {              
            if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)  
                md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));  
            else  
                md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));  
        }  
  
        return md5StrBuff.toString();  
    }