Uploaded image for project: 'Commons Codec'
  1. Commons Codec
  2. CODEC-87

DigestUtils: MD5 checksum is not calculated correctly on linux64-platforms

    XMLWordPrintableJSON

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).

      Attachments

        1. md5test.jar
          46 kB
          Alexander Gräf
        2. md5testsb.jar
          47 kB
          Sebb

        Activity

          People

            Unassigned Unassigned
            salamander Alexander Gräf
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: