关于C#MD5与javaMD5不一致问题 问题描述:java的MD5加密跟C#的MD5加密结果不一致,FormsAuthentication.HashPasswordForStoringInConfigFile(p, "MD5").ToUpper();这是c#的MD5加密 在网上找了问题 有很多人提出这样的问题 说是与服务器调节保持一种MD5一致,自己写一个MD5加密。小弟不会写MD5加密,求各位大神解救啊.............. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 MD5 加密跟数据类型有关系吗? 我这里是String 字符串Md5加密 这里给一个JAVA版本MD5加密的实现。如果要验证加密是否正确,可以移步http://www.ostools.net/encrypt?type=2public 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; } } 例如输入字符串是:123456MD5加密之后是:e10adc3949ba59abbe56e057f20f883e 用你写的MD5工具生成MD5字符串,然后与网上成熟的MD5生成工具生成的结果比较一下就知道哪一个对,哪一个错了 谢谢 你的加密算法是正确的 javaMD5 我有 只是我的JavaMD5 加密后结果与服务器C#的MD5加密结果不一致服务器的MD5是这样实现的FormsAuthentication.HashPasswordForStoringInConfigFile(p, "MD5").ToUpper(); 现在 是什么样的JavaMD5加密结果后与c#的MD5结果一致 四楼 MD5加密现在是正确的 只是服务器那端用的是C# 我客户端这边用的是java 所以出现了结果不一致的问题 首先得你确认哪一边加密是错的,是C#还是Java? 好了 已经解决了谢谢各位java中用urlencoder.encode转码后加密 c#中用System.Web.HttpUtility.UrlEncode转码后加密对比 这样就一样了 求助:Unable to compile class for JSP注意:sun.tools.javac.Main 已过时 编写一个函数? struts框架的简单问题 求jsp跳页的代码 在jsp中嵌入flex出现错误,弄了一天了 关于一个JSP连接mysql失败的问题,请各位兄弟帮忙,很急! 登陆问题,谁帮帮我!!!!!!!!!! 为什么必须要加java.sql.呢,纳闷ing. 怎样判断用户是否在线???????? 请大家帮忙看看! 详细介绍Java接口的作用 关于ejb +jpa+jsf+jboss web开发遇到的问题
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是这样实现的FormsAuthentication.HashPasswordForStoringInConfigFile(p, "MD5").ToUpper(); 现在 是什么样的JavaMD5加密结果后与c#的MD5结果一致