Russian Qt Forum

Программирование => Общий => Тема начата: Fregloin от Апрель 21, 2015, 18:12



Название: Запись и чтение контрольной суммы файла
Отправлено: Fregloin от Апрель 21, 2015, 18:12
Привет. Есть файл в бинарном формате. Программа умеет определять некоторые повреждения файла при чтении, но для надёжности думаю есть смысл писать контрольную сумму.
С самой контрольной суммой разобрался. Каким образом ее вычислить и куда писать. Например у меня есть заголовок файла (сигнатура, версия, кое какие атрибуты) и собственно данные (точнее различные секции с данными). Правильно ли я понимаю, что есть смысл вычислить контрольную сумму сразу после сигнатуры и записать ее после нее?


Название: Re: Запись и чтение контрольной суммы файла
Отправлено: Bepec от Апрель 21, 2015, 19:15
В структуру блока данных записывай :)
Заголовок + ( длина блока + КС + данные ) * N


Название: Re: Запись и чтение контрольной суммы файла
Отправлено: Igors от Апрель 22, 2015, 08:04
Правильно ли я понимаю, что есть смысл вычислить контрольную сумму сразу после сигнатуры и записать ее после нее?
Да, контрольная сумма считается по записанному файлу. Что касается ее полезности, то она, на мой взгляд, невелика. Так или иначе надо делать теги, там и контроль сам собой. 


Название: Re: Запись и чтение контрольной суммы файла
Отправлено: Fregloin от Апрель 22, 2015, 09:07
Верес, немного не понял Вас..  ::) КС писать для каждого блока данных?
По поводу избыточнотси - делается для того что бы со стороны никто не мог редактировать бинарные данные. Т.е. КС не правильная, програ не грузит файл и сообщает об этом.
Теги в файле присутсвтуют, по сути это XML только преобразованный в свой формат (с индексацией строковых констант для уменьшения размера файла и скорости обработки).
Наличие тегов и сигнатур проверяется, а вот собственно правка бинарных данных никак не может быть выявлена. Поэтому и хочется писать КС для гарантии, что юзер будет работать
с правильной версией файла, которую мы поставили на объект. Лишить возможности редактирования в HEX редакторе.


Название: Re: Запись и чтение контрольной суммы файла
Отправлено: Igors от Апрель 22, 2015, 09:25
Лишить возможности редактирования в HEX редакторе.
Ну если кто-то возымеет желание править Ваш файл - это уже успех  :)


Название: Re: Запись и чтение контрольной суммы файла
Отправлено: Bepec от Апрель 22, 2015, 09:42
По поводу вопрос - я думал у вас блочная запись. Для каждого блока своя КС.

Сделайте как в хроме - там записывается не CRC чистый, а хеш от CRC. :D

PS добавляет массу головной боли "редакторам" :D


Название: Re: Запись и чтение контрольной суммы файла
Отправлено: gil9red от Апрель 22, 2015, 10:12
По поводу вопрос - я думал у вас блочная запись. Для каждого блока своя КС.

Сделайте как в хроме - там записывается не CRC чистый, а хеш от CRC. :D

PS добавляет массу головной боли "редакторам" :D

Напоминает хранение не паролей, а хешей паролей пользователей :) Если базу паролей умыкнуть, то получат фигню хеши :)