首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >校验和: CRC还是散列?

校验和: CRC还是散列?
EN

Stack Overflow用户
提问于 2013-01-26 10:39:13
回答 1查看 8.2K关注 0票数 10

除了性能和安全性方面的考虑,假设哈希函数具有完美的雪崩效应,我应该使用哪种方法来检查数据的和块: CRC32还是散列被截断为N个字节?也就是说,哪一种错误的出错概率较小?具体地说:

  1. CRC32与4字节哈希
  2. CRC32与8字节哈希
  3. CRC64与8字节哈希

数据块要通过网络传输,并反复存储在磁盘上。块的大小可以是1KB到1GB。

据我所知,CRC32可以以100%的可靠性检测多达32位翻转,但在此之后,它的可靠性接近1-2^(-32),对于某些模式来说,情况要糟糕得多。一个完美的4字节哈希可靠性总是1-2^(-32),所以去图.

8字节哈希应该有一个更好的整体可靠性(2^(-64)有机会错过一个错误),那么它应该比CRC32更好吗?那CRC64呢?

我想答案取决于在这类操作中可能会出现的错误类型。我们可能会看到稀疏的1位翻转或大规模的块状腐败吗?另外,考虑到大多数存储和网络硬件都实现了某种类型的CRC,不应该已经处理掉偶然的位翻转了吗?

EN

回答 1

Stack Overflow用户

发布于 2013-01-28 05:35:32

撇开“性能”问题不谈;您可能需要考虑使用SHA-2函数之一(例如SHA-256)。

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

https://stackoverflow.com/questions/14536130

复制
相关文章

相似问题

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