读书人

关于C#MD5与javaMD5不一致有关问题

发布时间: 2013-06-25 23:45:42 作者: rapoo

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



例如输入字符串是:123456
MD5加密之后是:e10adc3949ba59abbe56e057f20f883e


[解决办法]
用你写的MD5工具生成MD5字符串,然后与网上成熟的MD5生成工具生成的结果比较一下就知道哪一个对,哪一个错了
[解决办法]
引用:
四楼 MD5加密现在是正确的 只是服务器那端用的是C# 我客户端这边用的是java 所以出现了结果不一致的问题

首先得你确认哪一边加密是错的,是C#还是Java?

读书人网 >Java Web开发

热点推荐