是否有适用于CRC32C(Castagnoli)的Linux命令行工具?

10
我需要使用CRC32C(CRC32的Castagnoli变体)来验证数据。但我无法找到一个自包含的命令行实用程序来计算它以验证所需的值。CRC32?MD5?SHA?没问题。CRC32C?你输了。
我需要一个程序,必须是自包含的(不能有需要安装的非标准PERL或Python模块...标准模块可以)。可能没有Java,因为我不能保证Java已安装。Ruby不行。
巧妙的“gzip”或“tar”技巧很好。需要在OS-X、Linux和可能的Android上运行。
我确实可以编写一个(代码在RFC中),但是...这有点像
“嗯,我的车用合成油...该换油了,让我去当地的炼油厂制造一些夸脱”
或者
“Bill叔叔想要一份花生酱和果酱三明治,但他对麸质过敏...让我去买一些米粉制作无麸质面包”。
我找到了一些计算CRC32C的库,但没有程序。抱怨。

https://developers.google.com/storage/docs/composite-objects?hl=ja


3
小知识:SSE4.2有一种指令可以执行此操作。http://en.wikipedia.org/wiki/SSE4#SSE4.2 (惊呆了) - sehe
我知道,看到那个...相当惊人,嗯? - Mark Gerolimatos
一个在线的CRC32C计算器可在https://www.scadacore.com/tools/programming-calculators/online-checksum-calculator/找到。 - Encombe
3个回答

13

从4.4版本开始,gsutil支持“hash”命令,可以这样计算哈希值:

gsutil hash filename

默认情况下,它将输出CRC32C和MD5。


安装本地crcmod有些麻烦,因为它需要卸载现有的crcmod。https://cloud.google.com/storage/docs/gsutil/addlhelp/CRC32CandInstallingcrcmod#debian-and-ubuntu - pablo
1
首先执行 pip install gsutil - Smeterlink

2
只要您能够编译C代码,在这个stackoverflow答案中,就可以找到您正在寻找的程序。如果可用,它还将使用Intel crc32指令。

有没有一个易于使用的命令行工具,可以通过读取文件块来计算大文件的crc32c? - pablo
如果你在该链接处编译程序并定义了TEST,那么你就拥有了你的命令行工具。 - Mark Adler
1
它可以使用“gcc -D TEST crc32c.c -o crc32c -lpthread”和“cat bigfile | ./crc32c”进行工作。谢谢。 - pablo
1
或者简单地输入 ./crc32c < bigfile - Mark Adler

1

gsutil将在下一个版本(gsutil 4.4)中包含一个新的“hash”命令,很快就会发布。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接