1 回答

TA貢獻1873條經(jīng)驗 獲得超9個贊
兩個問題:
Java 版本使用字節(jié),Perl 版本使用數(shù)字字符串。使用pack將字符串轉(zhuǎn)換為其字節(jié)等效項。
在 Java 版本中,您將散列應(yīng)用于到目前為止計算的散列,在 Perl 代碼中,您只是一次又一次地散列相同的值。
#!/usr/bin/perl
use warnings;
use strict;
use Digest::SHA 'sha256';
my @salt = (84, 65, -51, 83, -4, -17, -32, 61, -26, 33, -106, -81,
-14, 70, -30, 59, 41, -19, -1, 19, -104, -100, -31, 31,
57, -6, -115, -99, 0, 38, -123, -11);
my @password = (100, 112, 107, 57, 52, 110, 50);
my $alg = 256;
my $sha = Digest::SHA->new($alg);
$sha->add(pack 'c*', @salt);
$sha->add(pack 'c*', @password);
$sha->add($sha->digest) for 1 .. 999;
my $output = $sha->hexdigest;
print "\nHash: $output\n";
添加回答
舉報