perl - 将字符串转换为 CRC-32 时的不同结果

标签 perl crc32

我正在尝试使用 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/

相关文章:

php - PHP伪随机有多随机,4个字节

xml - 使用 Strawberry Perl 和 twig 清除 Windows 上目录树中所有文件中 xml 括号中的内容

perl - ShipIt 与 Dist::Zilla 的优势/劣势是什么?

CRC-32 和 LFSR 在 C 中逐字节

java - android 中错误的 CRC32 散列

一个符号校验和的算法

Java 在同一个字符串上返回不同的 CRC32 结果

linux - 如何获取特定年份输入的所有星期一(日期)

bash - 在 Bash 中转写十六进制字符

perl - 如何在 Perl 中将字符串转换为数字( float )