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

关于C#MD5与javaMD5不一致问题
    问题描述:java的MD5加密跟C#的MD5加密结果不一致,FormsAuthentication.HashPasswordForStoringInConfigFile(p, "MD5").ToUpper();这是c#的MD5加密     在网上找了问题 有很多人提出这样的问题   说是与服务器调节保持一种MD5一致,自己写一个MD5加密。小弟不会写MD5加密,求各位大神解救啊..............

------解决方案--------------------
加密的内容是什么类型?
------解决方案--------------------
这里给一个JAVA版本MD5加密的实现。如果要验证加密是否正确,可以移步
http://www.ostools.net/encrypt?type=2


public final static String MD5(String s) {  
         //16进制下数字到字符的映射数组    
        char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',  
                'a', 'b', 'c', 'd', 'e', 'f' };  
        try {  
            byte[] strTemp = s.getBytes();  
            MessageDigest mdTemp = MessageDigest.getInstance("MD5");  
            mdTemp.update(strTemp);  
            byte[] md = mdTemp.digest();  
            int j = md.length;  
            char str[] = new char[j * 2];  
            int k = 0;  
            for (int i = 0; i < j; i++) {  
                byte byte0 = md[i];  
                str[k++] = hexDigits[byte0 >>> 4 & 0xf];  
                str[k++] = hexDigits[byte0 & 0xf];  
            }  
            return new String(str);  
        } catch (Exception e) {  
            // TODO: handle exception  
            e.printStackTrace();  
            return null;  
      &