Какая разница между CRC и контрольной суммой?Какая разница между CRC и контрольной суммой?
ответ
CRC (Cyclic Redundancy Check) представляет собой тип checksum, конкретно положение зависит алгоритм контрольной суммы (в том числе, например, Fletcher's checksum, Adler-32). Как следует из их названия, они также обнаруживают позиционные изменения, что делает их более устойчивыми, что более широко используется, чем другие методы контрольной суммы.
CRC совсем не прочный. Его позиционный характер делает его достойной проверкой целостности, но вы должны использовать криптографический хеш, как MD5, если вы можете позволить себе более высокие вычислительные затраты. Если вычисление не является проблемой, я рекомендую SHA256. См. Также [мой ответ] (https://stackoverflow.com/a/49115040/519360). –
CRC не предназначены для противодействия столкновениям, а скорее для обнаружения передачи и других ошибок, таких как ошибки чтения. – zaph
CRC относится к определенному алгоритму контрольной суммы. Другие типы контрольных сумм - это XOR, модуль и все криптографические хеши.
Отъезд HowStuffWorks для хорошего описания и того, и того, как они отличаются.
На странице:
Циклические Redundancy Check (CRC)
CRCs аналогичны по своей концепции контрольных сумм, но они используют деление многочленов для определения значения CRC
Дополнительная информация приведена по ссылке выше, включая пример того, как рассчитывается контрольная сумма.
Jeff Atwood (основатель Stack Overflow) написал в своем Checksums and Hashes блоге:
Я научился ценить алгоритм циклического избыточного кода (CRC) в моем 8-бит, 300 бод передачи файлов дней. Если CRC локального файла соответствует CRC, хранящемуся в файле (или на сервере), у меня была действительная загрузка. Я также немного узнал о pigeonhole principle, когда я загрузил файл с соответствующим CRC, который был поврежден!
A checksum является error-detection scheme, что, как правило, относится к криптографической хэш-функции, хотя он также включает в себя CRC. Вот три различных типа контрольной суммы:
Cyclic Redundancy Checks как CRC32 быстро, но столкновение склонных. Они не являются надежными для collision attacks, что означает, что кто-то может принять заданный CRC и легко ввести второй вход, который соответствует ему.
Cryptographic hash functions как MD5 (слабее), SHA1 (слабый), и SHA256 (сильный) специально разработаны, чтобы быть устойчивым к атакам столкновения. Они предпочтительнее CRC в любой ситуации, кроме скорости; используйте самый сильный алгоритм, который вы можете вычислить.
Key derivation functions как PBKDF2 и bcrypt предназначены для паролей. Это контрольные суммы, которые дорого вычисляются, чтобы они были надежными до brute-force attacks.
См. Также Crypto.SE question on CRC vs SHA1. В Википедии есть страница hash function security summary, в которой обсуждается вероятность столкновения различных криптографических хэшей.
Давайте продолжим обсуждение в чате (https://chat.stackoverflow.com/rooms/166264/discussion-between-adam-katz-and-zaph). –
Контрольные суммы не обязательно являются криптографическими хеш-функциями, они могут быть такими же простыми, как и арифметическая сумма байтовых значений. См. [Модульная сумма] (https://en.wikipedia.org/wiki/Checksum#Modular_sum) и в целом [Контрольная сумма] (https://en.wikipedia.org/wiki/Checksum). Возможно, вам нужно провести некоторые контрольные суммы WRT по исследованиям безопасности. – zaph
@zaph - У меня было исправлено несколько изменений, и я также добавил вашу другую обратную связь, когда она вошла. Модульная сумма - действительно контрольная сумма. XOR нет. Как я отметил в чате, меня все еще интересует ваша конструктивная обратная связь и хотелось бы знать, как я мог бы превратить ваш -1 в +1. Давайте остановим обсуждение элементов, которые уже исправлены в моем ответе. –
- 1. Разница между суммой и суммой в LINQ
- 2. sas разница между суммой и +?
- 3. какая разница между @ и @ :?
- 4. Какая разница между (и [?
- 5. Разница между прямым и косвенным CRC
- 6. Разница между стилем и контрольной таблицей
- 7. Разница между табло и контрольной сумкой
- 8. Какая разница между разделителем $$ и //
- 9. Какая разница между @load() и $ {}
- 10. Какая разница между списком() и []
- 11. Функция с контрольной суммой Функция nACK Ответы
- 12. Какая разница между нулями?
- 13. Thread Какая разница между
- 14. Какая разница между ними?
- 15. Проблема с контрольной суммой MD5 в java
- 16. Расчет контрольной суммы CRC для ALAsset
- 17. минимальная разница между суммой двух подмножеств
- 18. Максимум Абсолютная разница между суммой переменных массива
- 19. Программа CRC 16 для вычисления контрольной суммы
- 20. Разница в Boost CRC и linux/lib/crc-ccitt.c
- 21. Какая разница между полисервисом и полимером?
- 22. Gremlin Какая разница между transform и sideEffect
- 23. Какая разница между OnKeyListener и OnEditorActionListener?
- 24. какая разница между qs и querystring
- 25. Какая разница между - (пустотой) и + (недействительных) методы
- 26. Какая разница между HttpResponseException и HttpException
- 27. Какая разница между копией и назначением вектора?
- 28. Какая разница между чтением файла и потоком?
- 29. Oracle Какая разница между/и sys?
- 30. Какая разница между обработчиком http и ashx
Я бы сказал около $ 1.95;) –