校验和是确定机器之间的文件/文本字符串是否相同的好方法吗?
我听说过,但现在找不到证据表明文件相同的机器之间的校验和可能会有所不同。这是真的吗?我们正在考虑依赖应用程序中的校验和,该校验和将在许多不同的机器上计算,这可靠吗?
I have heard, but I now cannot find evidence that a checksum can vary from machine to machine where the file is the same. Is that true? We are considering relying on a checksum in our application that will be calculated on many different machines, will this be reliable?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这取决于算法。如果您使用的是使用整数(二进制补码)数学的多字节(> 8 位)校验和,那么根据机器的字节序,您将得到不同的结果。
这就是为什么许多网络校验和算法使用一个补码数学而不是 两个补码。
如果两台机器具有相同的操作系统和架构,那么您应该没问题(除非您的算法做了一些非常奇怪的事情)。
It depends on the algorithm. If you are using a multibyte (>8 bit) checksum that uses integer (two's complement) math, then you will get different results depending on the endianness of the machine.
This is why a lot of network checksum algorithms use one's complement math instead of two's complement.
If both machines are the same OS and archtecture, you should be OK (unless your algorithm does something really weird).
是的,只要您确保使用相同的校验和算法,就可以了。
Yes, as long as you make sure you are using the same checksum algorithm, it will be fine.