导航:首页 > 编程语言 > javamd5不一致

javamd5不一致

发布时间:2022-06-25 23:55:45

java生成的MD5,和c#的生成的不一致,有java代码,求c#代码!

考虑一下中文字符问题。两边使用的编码是不是一样的。保持一样就可以了。

建议使用UTF8编码


JAVA代码如下(在你给同的代码上只做了少量修改):

publicclassSecurity{

publicstaticvoidmain(String[]args){
try{
System.out.println(MD5("中国"));
}catch(Exceptionex){}
}

publicstaticStringMD5(Stringtxt){
charhexDigits[]={'0','1','2','3','4','5','6','7','8','9',
'a','b','c','d','e','f'};
try{
byte[]btInput=txt.getBytes("utf-8");
MessageDigestmdInst=MessageDigest.getInstance("MD5");
//使用指定的字节更新摘要
mdInst.update(btInput);
//获得密文
byte[]md=mdInst.digest();
//把密文转换成十六进制的字符串形式
intj=md.length;
charstr[]=newchar[j*2];
intk=0;
for(inti=0;i<j;i++){
bytebyte0=md[i];
str[k++]=hexDigits[byte0>>>4&0xf];
str[k++]=hexDigits[byte0&0xf];
}
returnnewString(str);
}catch(Exceptione){
e.printStackTrace();
returnnull;
}
}
}


C#代码如下:

staticvoidMain(string[]args)
{
Console.WriteLine(Md5("中国"));
Console.ReadLine();
}

staticstringMd5(stringtxt){
byte[]result=Encoding.UTF8.GetBytes(txt);
MD5md5=newMD5CryptoServiceProvider();
byte[]output=md5.ComputeHash(result);
returnBitConverter.ToString(output).Replace("-","");
}

㈡ jquery.md5.js java md5不一致,求解

因为Java默认编码是unicode, byte[] btInput = s.getBytes();获得的是默认的unicode的byte数组。需要将这句改为byte[] btInput = s.getBytes("utf-8");就OK啦。

㈢ JAVA md5加密 两次不一致 中英文问号

把代码发一下 。可能是编码问题 也可能是字节数组转化字符串的问题

㈣ Java 与 php 的MD5加密为什么不一样

JAVA是根据unicode编码 PHP编码跟是跟加密编码一样的
JAVA字符数据在散列时的编码和PHP编码如果能保持一致 那么加密方式相同!

仔细分下用代码可以实现加密一样

㈤ 为什么同样的字串,在java里面,MD5加密后密文也不同

你这个打印出来的是两个byte数组的地址,肯定不一样啦。
标准的md5算法,对同一个字符串加密后的密文绝对是相同的,你需要将两个byte数组的内容转换成字符串类型,然后打印就没问题啦。

㈥ C#的MD5加密为什么和JAVA加密出来的结果不一样

两个加密的结果是相同的,如果出现不同可能是你的encodint可能不一样,都换成ACSII试试

㈦ java的32位MD5加密与php中的32位MD5加密结果不一样。求帮助。急急急

Java的字符串是unicode编码,不受源码文件的编码影响;而PHP的编码是和源码文件的编码一致,受源码编码影响。例中java字符数据在散列时的编码和php编码未能保持一致,我认为这是导致输出不同的“病理”

由于未知mad.toMd5的具体实现,问题直接成因应该在toMd5的String到byte[]转换时的编码上,或者未设置或者设置了错误的编码
但只要java的字符串先getBytes获得字节串,并和php源码编码一致,就能获得一致结果。

㈧ JAVA和C#MD5加密结果不一样,怎么办

static void Main(string[] args)
{
string input = "";
string output = md5(input);
Console.WriteLine(output);
Console.ReadLine();
}

public static string md5(string password)
{
MD5 md5 = new MD5CryptoServiceProvider();
byte[] res = md5.ComputeHash(Encoding.Default.GetBytes(password), 0, password.Length);
StringBuilder builder = new StringBuilder();
foreach (byte b in res)
{
builder.Append(Convert.ToString(b, 16));
}
return builder.ToString();
}

㈨ 用java在不同操作系统做 MD5 值不相同吗

MD5只是一个特殊的算法,它跟操作系统是没关系的。MD5本来就不用去管它 的结果的,你只要去判断新的字符串通过MD5之后结果是否相同,若相同,前后的字符串就是同一个,若不用,字符串就不一样呗,它的目的是为了防止解密的。你要知道它的结果干嘛呢

阅读全文

与javamd5不一致相关的资料

热点内容
云服务器和vms区别 浏览:18
有一本小说主角叫屠夫 浏览:880
微信发送pdf文件 浏览:605
被老婆当鼎炉修炼的小说 浏览:646
php截取最后一位 浏览:377
安卓源码单独编译内核 浏览:446
易语言在线编译 浏览:112
unityandroid游戏开发教程 浏览:94
android去掉虚拟按键 浏览:873
内地激情戏多的电影 浏览:42
更新最快的电视剧电影网 浏览:263
剑三宏设置命令 浏览:245
3C语言编译器 浏览:170
我的世界基岩版怎么加入tis服务器 浏览:390
php论坛模板 浏览:908
找个免费看电影的网站 浏览:372
程序员怎么接手别人遗留的代码 浏览:752
瞬变pdf 浏览:307
php开发仓库管理系统 浏览:688
12米小孩自己看电影 浏览:676