C#的算法应该是微软实现的,不能看到源码,就是一句话
public static string md5(string str)
{
string md5str = FormsAuthentication.HashPasswordForStoringInConfigFile(str.Trim().Replace("'", ""), "MD5");
return md5str;
}请问使用java如何实现。之前用java实现的结果:
69AAC51ED3FA8D84E9D6B9A37A4A523(使用了大写)
但是c#实现的结果:
69AAC51ED3FA08D84E9D6B9A37A4A523
就是差一个0呀,害得我访问接口老是说参数错,求各位大神能解答!
public static string md5(string str)
{
string md5str = FormsAuthentication.HashPasswordForStoringInConfigFile(str.Trim().Replace("'", ""), "MD5");
return md5str;
}请问使用java如何实现。之前用java实现的结果:
69AAC51ED3FA8D84E9D6B9A37A4A523(使用了大写)
但是c#实现的结果:
69AAC51ED3FA08D84E9D6B9A37A4A523
就是差一个0呀,害得我访问接口老是说参数错,求各位大神能解答!
解决方案 »
- java的batch中弹出窗口怎么控制
- 使用JSTL或者OGNL展示一个集合里面的所有内容是哪个标签
- 问个Runtime.getRuntime().exec的问题。
- Struts 2 中url中action的写法问题
- annotation @OneToMany报错
- 那位朋友.推荐javeEE好书来..看看..我刚入门没多久..在这谢啦?
- struts2 s:select怎样显示我想要显示的值
- 请教一个struts模版问题?
- J2EE和EJB是什么关系,JSP又和两者是什么关系?
- 怎么查看jar包里面的.class文件源java代码?
- java如何把文件夹打包成一个文件
- Map:获取key判断map value
public static String md5(String src) throws Exception{
MessageDigest md=MessageDigest.getInstance("MD5");
byte[] b=src.getBytes();
md.update(b);
b=md.digest();
StringBuilder sb=new StringBuilder();
for(int i=0;i<b.length;i++){
int value=b[i]&0xff;//留下后面的8位2进制数
if(value<16)//小于16的要补0因为字节时候用16进制的表现形式
sb.append("0");
sb.append(Integer.toHexString(value));//转换成16进制数
}
return sb.toString();
}
public static String getMD5(String str, String encoding) throws Exception {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(str.getBytes(encoding));
byte[] result = md.digest();
StringBuffer sb = new StringBuffer(32);
for (int i = 0; i < result.length; i++){
int val = result[i] & 0xff;
if (val < 0xf) {
sb.append("0");
}
sb.append(Integer.toHexString(val));
}
return sb.toString().toUpperCase();
}
public static void main(String[] args) throws Exception {
System.out.println(getMD5("a", "utf-8"));
}
public static String getMD5(String str, String encoding) throws Exception {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(str.getBytes(encoding));
byte[] result = md.digest();
StringBuffer sb = new StringBuffer(32);
for (int i = 0; i < result.length; i++) {
int val = result[i] & 0xff;
if (val < 0xf) {
sb.append("0");
}
sb.append(Integer.toHexString(val));
}
return sb.toString().toUpperCase();
}