Java兼容的cksum功能

时间:2011-10-12 20:57:29

标签: java checksum crc crc32

Java中是否有任何库/代码以与unix中的cksum命令一致的方式计算字节流的32位CRC?

3 个答案:

答案 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。