计算文件的CRC32校验和

Nav*_*age 2 linux perl crc32

我正在尝试计算用于此模块Mod_zip 的文件的CRC32校验和,我试图这样做PHP但不幸的是失败,即使传递对大文件也不会有效.

我也试过linux cksum命令,但它计算文件的CRC校验和.

我发现,perl的Linux的可用于计算文件CRC32,如果可能的话,我可以用了shell_exec到输出导入到我的PHP申请,我该怎么办呢?

Ken*_*sis 6

你看过Digest :: CRC吗?来自文档:"它包含具有CRC-CCITT,CRC-16,CRC-32和CRC-64的正确参数的包装函数,以及OpenPGP的ASCII装甲校验和中使用的CRC."

use strict;
use warnings;
use Digest::CRC;

my $ctx = Digest::CRC->new( type => 'crc32' );

open my $fh, '<:raw', $ARGV[0] or die $!;
$ctx->addfile(*$fh);
close $fh;

print $ctx->hexdigest, "\n";
Run Code Online (Sandbox Code Playgroud)

命令行用法: perl script.pl inFile

希望这可以帮助!

  • @NaveenGamage - "0x"仅表示后跟十六进制数; 它不是校验和的一部分.正常CRC-32有8个十六进制数字:0x********上面的`$ ctx-> hexdigest`返回此值. (3认同)