I thought I knew how to use Digest::(MD5|SHA1), but apparently not. I've found out that when I have a function like this:

sub generate_signature { my $fh = shift; my $digest = Digest::SHA1->new(); $digest->addfile($fh); return $digest->sha1_hex(); }

I get different results for the first time I call the function and the subsequent calls in the same process. The sequence is always the same, though... and it looks something like this:

Signature for test.pl is bd7ce45573c74ca2373ddaf2f87fd7047bd1c6c7 Signature for test.pl is acdae4cd87ebecf0d2a4c96bec4282bb98adf831

But the two digests that I get are always the same, it's just that successive calls within the same process seem to stack the previous data passed by add() or addfile()

This leads me to believe that some how Digest::SHA1 is not resetting its state when new() is called.... I tried calling reset(), but that didn't work either.

Am I missing something? Is there a workaround?


In reply to How to force Digest::SHA1/MD5 to reset? by lestrrat

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.