2017-12-02 6 views
0

이것은 내 Java 코드입니다.C# MD5 해시 Java MD5와 동일하지 않습니다

byte[] bytes = { 0x35, 0x24, 0x76, 0x12 }; 
    MessageDigest m = MessageDigest.getInstance("MD5"); 
    byte[] digest = m.digest(bytes); 

C 번호 결과가

byte[] bytes = { 0x35, 0x24, 0x76, 0x12 }; 
MD5 md5 = new MD5CryptoServiceProvider(); 
byte[] result = md5.ComputeHash(bytes); 

나는 결과 바이트가 나는 자바에 새로운 오전 누군가가 .. 덕분에 설명 할 수 다르다는 것을 발견했습니다 ..

C#

[ 58, 74, 139, 3, 244, 223, 176, 230, 227, 252, 130, 221, 54, 159, 112, 239] 

java

[ 58, 74,-117, 3, -12, -33, -80, -26, -29, -4,-126, -35, 54, -97, 112, -17] 
+0

[58, 74, -117, 3, -12, -33, -80, -26, -29, -4, -126, -35, 54, -97,112, -17] C# –

+0

의 경우 o) –

+0

더 나은 이해를 위해 Java 바이트 유형에 대한 문서를 읽으십시오. https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html –

답변

1

모든 긍정적 인 값이 동일한 것을 볼 수 있습니다. 부정적인 것만이 다릅니다. .net byte type에는 부호가 없으므로 0에서 255 사이의 값을 갖습니다. Java에서 바이트 유형의 범위는 -128에서 127 사이입니다. You can read it here.

+0

나는 암호를 해독 할 수없는 열쇠로 C#에서 바이트를 사용합니까? 생산이 다르기 때문에. 이 시스템의 한계에 부딪 쳤나요? –

+0

이 질문을보십시오 : [https://stackoverflow.com/questions/17754262/c-sharp-unsigned-bytes-encryption-to-java-signed-bytes-decryption]. 어쩌면 그것은 사용되는 암호화 알고리즘에 depens지만, C#에서 무엇을 해독 할 수있을 것입니다 자바 응용 프로그램에 의해 암호화됩니다. –