导航:首页 > 编程语言 > 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不一致相关的资料

热点内容
代码加密常用方法 浏览:950
安卓手机如何解除已禁用 浏览:396
算法的随机性 浏览:485
高中解压体育游戏 浏览:532
androidstudior丢失 浏览:345
命令行笔记 浏览:737
360目标文件夹访问拒绝 浏览:518
3b编程加工指令 浏览:789
c8051f系列单片机选型手册 浏览:772
南昌php程序员 浏览:511
bcs命令 浏览:446
如何在服务器指向域名 浏览:417
车床编程可以做刀吗 浏览:519
ln命令源码 浏览:791
用粘液做解压手套 浏览:331
icloud收信服务器地址 浏览:500
编程思考者 浏览:453
压缩机型号用什么氟利昂 浏览:553
农机空气压缩机 浏览:666
程序员下载歌曲 浏览:897