Java中是否有任何库/代码以与unix中的cksum命令一致的方式计算字节流的32位CRC?
答案 0 :(得分:5)
Jacksum:http://www.jonelo.de/java/jacksum/index.html
cksum algorithm: POSIX 1003.2 CRC algorithm
length: 32 bits
type: crc
since: Jacksum 1.0.0
comment: - under BeOS it is /bin/cksum
- under FreeBSD it is /usr/bin/cksum
- under HP-UX it is /usr/bin/cksum and
/usr/bin/sum -p
- under IBM AIX it is /usr/bin/cksum
- under Linux it is /usr/bin/cksum
它是开源的。
答案 1 :(得分:2)
您是否尝试过CRC32课程?
http://download.oracle.com/javase/7/docs/api/java/util/zip/CRC32.html
这是gzip使用的crc 32。
答案 2 :(得分:-1)
Carlos Rendon的陈述,"我可以验证Java的CRC32与/ usr / bin / cksum"是不一样的,是不正确的。
正如Peter Lawrey所提到的,您可以直接使用Java的CRC32来获得与Unix / Linux cksum
相同的校验和。
正确的做法是:
java.util.zip.CRC32 x = new java.util.zip.CRC32();
x.update(bytes);
StdOut.println("CRC32 (via Java's library) = " + Long.toHexString(x.getValue()));
来源:http://introcs.cs.princeton.edu/java/61data/CRC32.java.html
使用的默认CRC基于网络标准中用于CRC错误检查的多项式 ISO / IEC 8802-3:1989。