Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re: Exchanging md5s between Perl and C

by jettero (Monsignor)
on Oct 28, 2010 at 18:58 UTC ( #868119=note: print w/ replies, xml ) Need Help??

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.

  • "a" should be: 0cc175b9c0f1b6a831c399e269772661
  • "a\x0a" should be: 60b725f10c9c85c70d97880dfe8191b3
  • "a\x0d\x0a" should be: 0c629e1d3acda389c88a213374ec62fc

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

Comment on Re: Exchanging md5s between Perl and C
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');
    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

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://868119]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (3)
As of 2015-10-04 20:31 GMT
Find Nodes?
    Voting Booth?

    Does Humor Belong in Programming?

    Results (104 votes), past polls