Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.3, 1.4
-
None
-
None
-
Suse Enterprise Linux 10 (64bit)
Description
Actual behaviour:
The class DigesterUtils calculates different md5-hashes depending on plattform.
I used jdk1.5.0_19-32bit on win32 and jdk1.5.0_19-64bit on SLES 10 (64-bit) for testing.
The effect depends on the charactersequence that is used for the calculation of the hash. There are some charactersequences that are calculated correctly. I think that the hash that is calculated on Windows 32 is the correct one since we have checked it by using an other library for calculating md5-hashes (Tagish-Auth-1.0.3). Since both of the tested libraries internally make use of the class java.security.MessageDigest but differ in the way the calculated byte[] is transformed in a hex-string, I think that the problem is located in the Hex.encodeHex(byte[] hashedBytes) method.
Expected behaviour:
The md5-hash should should not depend on the platform and should be equal for all platforms.
Testcase:
System.out.println(DigestUtils.md5Hex("a9P,+$"));
produces the hash 79c28faa4fec5ceb98137f548f1d6fe3 on Windows XP (32bit).
The same instruction produces 3191078c1fa327f9856b5b54628f2a39 on Suse Enterprise Linux 10 (64bit).