Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#MD5哈希与Java/PHP MD5哈希不匹配_C#_Java_.net_Hash_Md5 - Fatal编程技术网

C#MD5哈希与Java/PHP MD5哈希不匹配

C#MD5哈希与Java/PHP MD5哈希不匹配,c#,java,.net,hash,md5,C#,Java,.net,Hash,Md5,我的练习是将管理后端从php移植到.net 后端与用java编写的应用程序通信 与md5哈希相比,在php和java中,md5哈希是相等的 我无法在java应用程序中更改md5哈希代码,因为这样会导致超过10000张客户卡无法使用 我的问题是,后端已被移植,现在新后端(.net)和java应用程序之间的通信已中断 我的.net md5哈希代码返回的哈希值与java代码不同 爪哇: 我的java代码为bb27aee4返回: 46d5acfcd281bca9f1df7c9e38d50576 而我的

我的练习是将
管理后端
从php移植到.net

后端与用java编写的应用程序通信

与md5哈希相比,在php和java中,md5哈希是相等的

我无法在java应用程序中更改md5哈希代码,因为这样会导致超过10000张客户卡无法使用

我的问题是,后端已被移植,现在新后端(.net)和java应用程序之间的通信已中断

我的.net md5哈希代码返回的哈希值与java代码不同

爪哇:

我的java代码为
bb27aee4
返回:

46d5acfcd281bca9f1df7c9e38d50576
而我的.net代码返回:

b767fe33172ec6cbea569810ee6cfc05
我不知道我要做什么


请提前提供帮助和感谢。

您看到哈希结果不同的原因是字符串的编码不同。在.NET代码中,您显式地指定了
UTF8
,而没有保证您的Java代码也会这样做;它很可能使用ASCII,这会导致生成不同的哈希


如果在.NET和Java代码中显式指定相同的编码,那么最终也会得到相同的MD5哈希。

从哈希中看到不同结果的原因是用于字符串的编码不同。在.NET代码中,您显式地指定了
UTF8
,而没有保证您的Java代码也会这样做;它很可能使用ASCII,这会导致生成不同的哈希


如果在.NET和Java代码中明确指定相同的编码,那么最终也会得到相同的MD5哈希。

这不是MD5哈希生成器的问题。

bb27aee4的MD5哈希值
46d5acfcd281bca9f1df7c9e38d50576
&
BB27AEE4的MD5哈希值
b767fe3317ec6cbea569810ee6cfc05

因此,基本上在.NET中,您正在为
BB27AEE4
而不是
BB27AEE4
生成MD5哈希

因此,请检查代码中的错误


祝你好运这不是MD5哈希生成器的问题

bb27aee4的MD5哈希值
46d5acfcd281bca9f1df7c9e38d50576
&
BB27AEE4的MD5哈希值
b767fe3317ec6cbea569810ee6cfc05

因此,基本上在.NET中,您正在为
BB27AEE4
而不是
BB27AEE4
生成MD5哈希

因此,请检查代码中的错误


祝你好运

首先,确保你在java(
input.getBytes(“UTF-8”)
)和C#(
ascienceoding.UTF8.getBytes(wert)
中都使用UTF-8,这看起来可疑,不应该是
Encoding.UTF8.getBytes()
来编译吗?)。首先,确保你在java(
input.getBytes(“UTF-8”)和C#中都使用UTF-8(
ascienceoding.UTF8.GetBytes(wert)
看起来可疑,是否应该编译
Encoding.UTF8.GetBytes()
)。虽然通常这是一个有效点,但它并不能解释测试输入
bb27aee4
的差异,这将导致几乎所有编码的字节序列相同(EBCDIC除外)。虽然通常这是一个有效点,但它并没有解释测试输入
bb27aee4
的差异,这将导致几乎所有编码(EBCDIC除外)的字节序列相同。
46d5acfcd281bca9f1df7c9e38d50576
b767fe33172ec6cbea569810ee6cfc05