我正在尝试使用 perl 将字符串转换为 CRC-32。我发现了 String::CRC32。但该模块的结果与在线转换器不同。这是我的代码:
use strict;
use warnings;
use String::CRC32;
my $resi = "nawan";
print crc32($resi) . "\n"; # --output : 3840460347
该代码的输出是3840460347。
但是当我尝试使用在线转换器(this online converter)转换“nawan”时,该在线转换器的结果是f082b8df。
关于 CRC-32,我有什么想念的吗?为什么结果不同?
谢谢。
最佳答案
String::CRC32
的结果对应于 crc32b 输出的十进制值。该网站的版本。
use strict;
use warnings;
use String::CRC32;
my $resi = "nawan";
print sprintf("Decimal: %d, Hex: %x\n",crc32($resi), crc32($resi));
输出
Decimal: 3840460347, Hex: e4e8c63b
e4e8c63b 对应于在该网站上获取的“nawan”的 crc32b 哈希值。
关于perl - 将字符串转换为 CRC-32 时的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50096186/