Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Perl sha256 question

by Anonymous Monk
on May 23, 2016 at 07:13 UTC ( [id://1163843]=perlquestion: print w/replies, xml ) Need Help??

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Hi,

The output I am getting from SHA256 is different from what I get from other online tools:
use Digest::SHA qw(sha256_hex); print sha256_hex(5472151337331275); # 32838cef9e4571b4fa9a5297e265cf860a31774de3ca339878d87238af604a45 #result from other online tools: # b5951ee4a7cbfdc9df6b1b74de2d1ba865de40796c756cebe88a806c5a7b9e60

Am I missing something? Could someone enlighten me?

Thanks in advance :)

Replies are listed 'Best First'.
Re: Perl sha256 question
by Athanasius (Archbishop) on May 23, 2016 at 07:43 UTC

    Tip #2 from the Basic debugging checklist: Display the contents of variables using print or warn:

    use strict; use warnings; use Digest::SHA qw( sha256_hex ); my $h = 5472151337331275; print "\$h = >$h<\n\n"; print sha256_hex($h), "\n";

    On Perl v5.24.0, which is 64-bit:

    17:40 >perl 1639_SoPW.pl $h = >5472151337331275< b5951ee4a7cbfdc9df6b1b74de2d1ba865de40796c756cebe88a806c5a7b9e60 17:40 >

    — which is as expected. But on Perl v5.14.4, which is 32-bit:

    17:33 >perl 1639_SoPW.pl $h = >5.47215133733128e+015< 32838cef9e4571b4fa9a5297e265cf860a31774de3ca339878d87238af604a45 17:34 >

    As Anonymous Monk says, the fix is to turn the argument from a number into a string.

    Hope that helps,

    Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,

      Thank you so much :)

      On the same machine and Perl version, when I set the number to a variable, it works:

      use Digest::SHA qw(sha256_hex); my $num = 5472151337331275; print sha256_hex($num); # b5951ee4a7cbfdc9df6b1b74de2d1ba865de40796c756cebe88a806c5a7b9e60

      What difference does setting it to a variable make?

        It looks as though the assignment is performing a stringification. I haven’t been able to replicate this behaviour. What is your platform, and what is the output of perl -V?

        Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,

Re: Perl sha256 question
by Anonymous Monk on May 23, 2016 at 07:19 UTC

      That works! Great thanks :))

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://1163843]
Approved by Athanasius
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (4)
As of 2024-04-23 22:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found