http://qs321.pair.com?node_id=868119


in reply to Exchanging md5s between Perl and C

It seems to me it's your line endings...

echo -n "a" | md5sum gives me the same thing as md5_hex("a"). "a\n" and "a" should not hash to the same thing.

It's also worth noting that Digest::MD5 really is C, as much as /usr/bin/md5sum is: MD5.xs.

Replies are listed 'Best First'.
Re^2: Exchanging md5s between Perl and C
by bart (Canon) on Oct 28, 2010 at 19:14 UTC
    I'm pretty sure that is indeed the cause. Here's a test using md5sum from Perl:
    open OUT, '>', 'tempfile'; print OUT 'a'; close OUT; system('md5sum', '-b', 'tempfile');
    Result:
    0cc175b9c0f1b6a831c399e269772661 *tempfile
    So yeah, md5sum and Digest::MD5 agree.

    It's the OP's other tests that were flawed.

      ahhk! thank you very much, yes that was it.

      I previously had an issue with 32/64 bit and after going round and round until fixed, somewhere along the line I stared chasing my tail overlooking that minor but oh so important detail.

      cheers for you time! Glad it was as simple as that