perl - 流中文件的 MD5。珀尔

标签 perl md5 md5-file

我需要获取文件的 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/

相关文章:

php - 总是返回字母数字字符?

node.js - NodeJS : scanning a directory tree is slow as hell

node.js - 用于小型应用程序的 Perl Dancer 或 Node.js

perl - perl 在字符串中是否有等同于 TCL expr

perl - 条件为 "OR"的 While 循环

email - 电子邮件的唯一标识符

php - 外来字符怎么做MD5?

perl - 在 Perl 教程中出现 Bareword 错误

php - Zip 文件包含相同的文件但具有不同的哈希值?