Какая разница между CRC и контрольной суммой? - PullRequest
25 голосов
/ 29 июля 2010

Какая разница между CRC и контрольной суммой?

Ответы [ 4 ]

27 голосов
/ 29 июля 2010

CRC (циклическая проверка избыточности) - это тип контрольной суммы , в частности, зависимый от позиции алгоритм контрольной суммы (среди прочего, такой как контрольная сумма Флетчера) , Адлер-32 ). Как следует из их названия, они также обнаруживают позиционные изменения, что делает их более надежными - и, следовательно, более широко используемыми - по сравнению с другими методами контрольной суммы.

13 голосов
/ 29 июля 2010

CRC относится к определенному алгоритму контрольной суммы. Другими типами контрольных сумм являются XOR, модуль и все различные криптографические хеши.

11 голосов
/ 29 июля 2010

Проверьте HowStuffWorks для хорошего описания обоих и как они отличаются.

Со страницы:

Проверка циклическим избыточным кодом (CRC)

CRC по своей сути аналогичны контрольным суммам, но используют полиномиальное деление для определения значения CRC

Более подробная информация приведена по ссылке выше, включая пример того, как вычисляется контрольная сумма.

4 голосов
/ 05 марта 2018

Джефф Этвуд (основатель Stack Overflow) написал в своем блоге Checksum and Hashes :

Я научился ценить значение алгоритма Cyclic Redundancy Check (CRC)в мои 8-битные, 300-бодные дни передачи файлов.Если CRC локального файла совпадает с CRC, хранящимся в файле (или на сервере), у меня была допустимая загрузка.Я также немного узнал о принципе pigeonhole , когда скачал файл с соответствующим CRC, который был поврежден!

A контрольная сумма - это схема обнаружения ошибок , которая обычно относится к криптографической хэш-функции, хотя она также включает CRC.Вот три различных типа контрольной суммы:

Циклические проверки на избыточность , такие как CRC32 , быстрые, но подверженные столкновениям.Они не устойчивы к атакам столкновений , что означает, что кто-то может взять данный CRC и легко второй вход, соответствующий ему.

Криптографические хеш-функции как MD5 (слабый), SHA1 (слабый) и SHA256 (сильный) специально разработаны для обеспечения устойчивости к атакам столкновений.Они предпочтительнее CRC в любой ситуации, кроме скорости;используйте самый надежный алгоритм, который вы можете себе позволить в вычислительном отношении.

Функции получения ключей подобно PBKDF2 и bcrypt предназначены для паролей,Это контрольные суммы, которые дорого вычислять, поэтому они устойчивы к атакам грубой силы .

См. Также этот Crypto.SE вопрос о CRC против SHA1 .В Википедии есть страница сводной информации о безопасности хеш-функций , на которой обсуждается вероятность столкновения различных криптографических хешей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...