首页 文章

来自流的文件的MD5 . Perl的

提问于
浏览
1

我需要获取文件的md5校验和 . 但我没有磁盘上的文件,我无法将其保存到磁盘 . 我只有一个流(套接字),我可以从中读取文件 .

在这种情况下如何计算MD5校验和并使其与我为磁盘上的文件计算它相同?

我可以读取任何大小的流的块 . 在这种情况下是否可以获得正确的MD5?

我需要从块的总和中得到md5sum的一些指令,并得到相同的结果

md5sum filetohash.txt

我用Perl编写代码 .

1 回答

  • 3

    在计算校验和之前,无需将数据收集到完整的文件中 . 您可以将数据分段添加到 Digest::MD5 对象中,如下所示

    my $md5 = Digest::MD5->new;
    
    while ( my $chunk = read_stream() ) {
        $md5->add($chunk);
    }
    
    print $md5->hexdigest, "\n";
    

相关问题