hi monks

I have a C app and a Perl app that I want to be able to exchange md5s for the same string data.

I've noticed that Digest::MD5's implementation of the standard rfc1321 version, produces different md5s that most other rfc1321 implementations (like those off http://userpages.umbc.edu/~mabzug1/cs/md5/md5.html) .

For example most C md5 implementations I've tried give 60b725f10c9c85c70d97880dfe8191b3

for 'a' (ex echo 'a' | md5sum)

Digest::MD5's implementation gives

0cc175b9c0f1b6a831c399e269772661

I've seen this behavoir on 64 and 32 bit machines (this is linux platform).
What's interesting is in t/md5-aaa.t there's a note that the test data was originally produced using the C system utility md5sum

# This data was generated with: # # perl -e 'for (1..256) { system("md5sum --string=" . ("a" x $_)); }' # __END__ 0cc175b9c0f1b6a831c399e269772661 "a"

that utility does not give that md5 anymore however, it gives

60b725f10c9c85c70d97880dfe8191b3

It seems the perl implementation is the non standard one at this point. Trying to avoid getting heavily into the perl XS implementation to try and figure out how to make it produce the same md5s as all the other implementations.

Anyone know if there's anything simple to tweak in it, to get it to produce the more common md5s?

I've experimented a bit with linking against MD5.so and calling things direct but that was getting quite ugly. I don't really care which md5 I get, they just need to match between perl and my C app (without the user having to install a custom perl module or something).

cheers for any help

In reply to Exchanging md5s between Perl and C by damian45

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.