我需要获取文件的md5校验和 . 但我没有磁盘上的文件,我无法将其保存到磁盘 . 我只有一个流(套接字),我可以从中读取文件 .
在这种情况下如何计算MD5校验和并使其与我为磁盘上的文件计算它相同?
我可以读取任何大小的流的块 . 在这种情况下是否可以获得正确的MD5?
我需要从块的总和中得到md5sum的一些指令,并得到相同的结果
md5sum filetohash.txt
我用Perl编写代码 .
在计算校验和之前,无需将数据收集到完整的文件中 . 您可以将数据分段添加到 Digest::MD5 对象中,如下所示
Digest::MD5
my $md5 = Digest::MD5->new; while ( my $chunk = read_stream() ) { $md5->add($chunk); } print $md5->hexdigest, "\n";
1 回答
在计算校验和之前,无需将数据收集到完整的文件中 . 您可以将数据分段添加到
Digest::MD5
对象中,如下所示