CRC和校验和有什么区别?

问题描述 投票:23回答:4

CRC和校验和有什么区别?

networking
4个回答
25
投票

CRC (Cyclic Redundancy Check)是一种checksum,特别是位置依赖校验和算法(其中包括Fletcher's checksumAdler-32)。正如他们的名字所暗示的那样,它们也会检测位置变化,这使得它们比其他校验和方法更加健壮 - 因此使用得更广泛。


13
投票

CRC是指特定的校验和算法。其他类型的校验和是XOR,模数和所有各种加密哈希值。


10
投票

查看HowStuffWorks,了解两者的不同以及它们之间的区别。

从页面:

循环冗余校验(CRC)

CRC在概念上与校验和类似,但它们使用多项式除法来确定CRC的值

更多信息在上面的链接中给出,包括如何计算校验和的示例。


3
投票

Jeff Atwood(Stack Overflow的创始人)在他的Checksums and Hashes博客文章中写道:

我学会了在我的8位,300波特文件传输日中欣赏循环冗余校验(CRC)算法的价值。如果本地文件的CRC与存储在文件(或服务器)中的CRC匹配,则我有一个有效的下载。当我下载一个带有匹配的CRC损坏的文件时,我也学到了一些关于pigeonhole principle的知识!

checksumerror-detection scheme,通常指加密哈希函数,但它也包括CRC。以下是三种不同类型的校验和:

Cyclic Redundancy Checks这样的CRC32很快但容易发生碰撞。它们对collision attacks不健壮,这意味着某人可以采用给定的CRC并轻松地获得匹配它的第二个输入。

Cryptographic hash functions(较弱),MD5(弱)和SHA1(强)的SHA256专门设计用于抵抗碰撞攻击。除速度外,它们在各种情况下都优于CRC;使用你可以计算得出的最强大的算法。

Key derivation functionsPBKDF2这样的bcrypt是专为密码而设计的。它们是校验和,计算成本昂贵,因此它们对brute-force attacks很强大。

另见Crypto.SE question on CRC vs SHA1。维基百科有一个hash function security summary页面,讨论各种加密哈希的碰撞倾向。

© www.soinside.com 2019 - 2024. All rights reserved.