Java中是否有任何库/代码以与unix中的cksum命令一致的方式计算字节流的32位CRC?兼容java的cksum函数
回答
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
它是开源的。
您是否尝试过CRC32类?
http://download.oracle.com/javase/7/docs/api/java/util/zip/CRC32.html
这是gzip的使用CRC 32。
我在线阅读了几个地方,unix cksum的crc-32算法与gzip不一样。我没有测试过,但很可能是真的。使用'Jacksum'(见上文)适合我。 – Kowshik
@Kowshik,我可以验证Java的CRC32与/ usr/bin/cksum –
@Kowshik不一样,请检查我的答案。 –
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
使用的基于网络的检测标准 ISO/IEC用于CRC错误多项式默认CRC 8802-3:1989。
它肯定会为我返回不同的结果。事实上,我的机器(Mac)同时拥有'/ usr/bin/cksum'和'/ usr/bin/crc32'。 ''cksum <(echo -n hello)'产生'3287646509',而'crc32 <(echo -n hello)'产生'3610a686',我也检查了Java的'CRC32'返回的值与命令行' crc32',而不是与命令行'cksum'相同的值。 –
同样在这台Mac上,'cksum -o 3 <(echo -n hello)'产生与'3610a686'相同的'907060870'。所以'cksum -o 3'确实符合Java的'CRC32'。但是这不是这台机器上'/ usr/bin/cksum'的默认算法。 –
默认算法不是32位。阅读cksum手册页以获取更多详细信息 –
- 1. 兼容类型的函数
- 2. PHP和Javascript兼容的加密函数
- 3. 不兼容的函数隐式声明
- 4. POSIX cksum和Boost.CRC
- 5. goto和析构函数兼容吗?
- 6. IE兼容模式JavaScript函数不叫
- 7. PHP函数了兼容性问题
- 8. 函数与C++ 11规范不兼容
- 9. 与Java 7兼容的Java 1.4项目?
- 10. 什么是java中兼容的不兼容对象?
- 11. JRuby Java版本兼容性
- 12. RHEL 7.1与Java 1.8.45兼容
- 13. JAVA不兼容类型值
- 14. 兼容Java类名称
- 15. Java JRE版本不兼容
- 16. Java ArrayList不兼容类型
- 17. GUI Java应用程序与Win7兼容,但与Win10不兼容
- 18. businessobjects sdk java兼容性java版本
- 19. 的Android/Java的不兼容的类型
- 20. 不兼容的泛型类型的Java
- 21. Java中的类型兼容性问题
- 22. 适用于Android的Java ME兼容层
- 23. 与桌面兼容的Java Web框架
- 24. Java泛型 - 不兼容的类型
- 25. JNI库的Java版本兼容性
- 26. Android的Java级别兼容性?
- 27. 适用于Java的FIPS兼容SSH库
- 28. 的Java 7 FileSystemProvider向后兼容性
- 29. Apache ant 1.9.4与Java 1.8的兼容性
- 30. 哪个版本的tomcat兼容Java 1.6
适用于我。感谢您及时的回复! – Kowshik
@palacsint:是否有我可以在我的java程序中使用的代码/算法,因为我不想要任何第三方实用程序 – abi1964
有趣的是,jonelo.jacksum.algorithm.Cksum与Java的CRC32类具有相同的接口,结果为unix cksum。 –