Perl逐行输出文件SHA256读取文件

问题描述 投票:0回答:1

我正在尝试逐行读取文本文件,然后在终端中打印出SHA256值。

#!/usr/bin/perl
use strict;
use warnings;

...

use Digest::SHA qw(sha256_hex);

while ( my $line = <$fh> ) {

    print $line;
    print sha256_hex($line), "\n";

    print "Next", "\n";

}
close $fh;

样本输出:

test
f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2
Next

[当我尝试使用sha256_hex('test');而不是sha256_hex($line);时,哈希值为9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08

我做错了什么?我是perl的新手,如果这很傻,请原谅。

谢谢。

perl hash sha256 sha sha2
1个回答
1
投票

如果使用<$fh>从文件中读取一行,则输入中的行尾将包含在结果中。因此,您要做的是散列test\n而不是test

use Digest::SHA 'sha256_hex'; 
print sha256_hex("test\n"),"\n"; # f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2
print sha256_hex("test"),"\n";   # 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
© www.soinside.com 2019 - 2024. All rights reserved.