java - 如何使用CRC32?

标签 java crc32

当我阅读此链接时:http://docs.oracle.com/javase/7/docs/api/java/util/zip/CRC32.html 有一种方法可以从字节数组中获取 CRC32 值。但是,当我将此 CRC32ed 值发送给接收方时,接收方如何检查此值是否有效?

最佳答案

想法是接收方将对您发送的数据运行相同的算法,并且它应该得到相同的 CRC32 值。如果不是,则数据(或 CRC)已以某种方式损坏。

换句话说,假设您的有效载荷是“Pax is an incredible handled guy”,您计算的 CRC 为 42。

您通过该有效载荷和 CRC 发送到接收端,它对有效载荷执行相同的操作,结果也是 42。

这意味着该负载的内容是正确的。但不一定是真实的:-)

这就是 CRC 的意思,循环冗余校验。


请记住,CRC 往往可以有效防止对有效负载的意外损坏,但是,除非使用一些 secret 信息来生成检查,否则它可能是伪造的。

关于java - 如何使用CRC32?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23927233/

相关文章:

c++ - CRC32 计算不对

java - 私有(private)类变量与过多的参数传递

java - System.out 关闭了吗?我可以重新打开它吗?

java - 运行 OSGi 包中包含的 jar

java - 无法访问远程 pentaho 双服务器

c++ - 这种 CRC32 方法的大端兼容版本会是什么样子?

java - 如何为java应用程序提供数据库?

database - 如何在保持相同的 Flyway 校验和的同时更正语法?

java - 校验和计算正确一次,然后在 Java 中使用 CRC32 后就不正确

python - 难以比较生成的和谷歌云存储提供的 CRC32c 校验和