首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CRC32 as .NET HashAlgorithm和endianness

CRC32 as .NET HashAlgorithm和endianness
EN

Stack Overflow用户
提问于 2018-01-26 06:18:03
回答 1查看 310关注 0票数 1

CRC32计算为uint32,而.NET中的HashAlgorithm按照约定返回byte[]。当然,我可以很容易地用bytes = BitConverter.GetBytes(hash)转换它,但这受系统的“字节序”的影响(当然,高字节顺序几乎不可能)。

无论如何,我一直在想,有什么惯例可以遵循吗?我有一种感觉,那就是让hash.ToString("X")bytes.ToHex() (假设.ToHex()存在)看起来是一样的。

我已经检查过https://github.com/vurdalakov/crc32/wiki/CRC32,它不能做到这一点。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2018-01-26 08:16:50

我只能举一些例子,其中zip和gzip文件格式以小端顺序存储CRC。我相信有人可以找到以大端顺序存储32位CRC的示例,有时称为“网络顺序”,因为大端顺序是用于网络通信的约定。

如果您正在定义自己的协议,那么您可以选择您喜欢的任何一个。为了使代码具有可移植性,您需要使用移位运算符来拆分字节,以便机器的字节顺序不会影响结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48452804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档