我需要获取文件的 md5 校验和。 但我的磁盘上没有文件,无法将其保存到磁盘。 我只有一个可以读取文件的流(套接字)。
在这种情况下如何计算 MD5 校验和并使其与我为磁盘上的文件计算的值相同?
我可以读取任何大小的流 block 。 对于这种情况是否有可能获得正确的 MD5?
我需要一些从 block 的总和中生成 md5sum 的指令并得到与
相同的结果md5sum filetohash.txt
我用 Perl 编码。
最佳答案
在计算校验和之前无需将数据收集到完整的文件中。您可以将数据分段添加到 Digest::MD5
对象中,如下所示
my $md5 = Digest::MD5->new;
while ( my $chunk = read_stream() ) {
$md5->add($chunk);
}
print $md5->hexdigest, "\n";
关于perl - 流中文件的 MD5。珀尔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42156474/