Perl和哈希计算

时间:2014-07-08 11:47:00

标签: perl

当我在终端

中执行此命令时
echo -n 1 | sha256sum

然后命令输出如下所示:

  

6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b

但是当我使用perl脚本时使用此代码:

#!/usr/bin/perl

use strict;
use warnings;

my $text = '1';
my $hash = Digest::SHA->sha256_hex($text);

print $hash;

然后脚本输出如下所示:

  

f3a94951713ca935dcac0422747fb3e435cd8c6785c91ff5d9477e573df9ca28

我认为问题在于使用字符串$ text编码进入哈希函数。有人可以解释我必须如何正确地做到这一点吗?

1 个答案:

答案 0 :(得分:4)

您无法使用Digest::SHA->sha256_hex(1),因为它实际上是Digest::SHA::sha256_hex("Digest::SHA", 1)

使用

 Digest::SHA::sha256_hex(1)

 use Digest::SHA qw(sha256_hex);
 sha256_hex(1);

或(OOP式)

Digest::SHA->new(256)->add(1)->hexdigest()