Я храню в файле какие-то структурированные данные в "человеческом" виде. От содержимого этого файла зависит правильное поведение программы. Хочется сохранить читабельность данных, но защитить их от ручного редактирования какой-нибудь цифровой подписью или еще чем-либо. Подскажите, пожалуйста, куда нужно смотреть, что читать и какие библиотеки использовать. Спасибо.
добавь в самом конце файла еще одно поле — CRC32 или какой-нибудь иной хеш (MD5, SHA... да все, что в голову взбредет!) всех полей, находящихся "до" него. А при чтении — банально проверяй совпадение. Готовых библиотек для расчета хешей — на codeproject пруд пруди (ну или ложкой их черпай)..... в самом крайнем случае, спроси у Гугля.
Здравствуйте, Kubun, Вы писали:
K>Всем привет.
K>Я храню в файле какие-то структурированные данные в "человеческом" виде. От содержимого этого файла зависит правильное поведение программы. Хочется сохранить читабельность данных, но защитить их от ручного редактирования какой-нибудь цифровой подписью или еще чем-либо. Подскажите, пожалуйста, куда нужно смотреть, что читать и какие библиотеки использовать. Спасибо.
CRC32 или MD5 пихать в конец/начало файла ?
Ничто не ограничивает полет мысли программиста так, как компилятор.
Здравствуйте, dcb-BanDos, Вы писали:
DB>Здравствуйте, Kubun, Вы писали:
K>>Всем привет.
K>>Я храню в файле какие-то структурированные данные в "человеческом" виде. От содержимого этого файла зависит правильное поведение программы. Хочется сохранить читабельность данных, но защитить их от ручного редактирования какой-нибудь цифровой подписью или еще чем-либо. Подскажите, пожалуйста, куда нужно смотреть, что читать и какие библиотеки использовать. Спасибо.
DB>CRC32 или MD5 пихать в конец/начало файла ?
Откуда удобнее парсить — туда и пихать.
Долго не думал, но кажется, что проще всего в начало запхнуть — размер хэша фиксированный, поэтому при парсинге можно сразу его отчитать, сохранить, а дальше парсить файл как обычно, добавив вычисление хэша для читаемых данных. По прочтению последнего полезного байта сравнить расчитанный хэш с вычитанным в начале.
Здравствуйте, Kubun, Вы писали:
K>Хочется сохранить читабельность данных, но защитить их от ручного редактирования какой-нибудь цифровой подписью или еще чем-либо.
От случайного или умышленного? Для первого случая уже сказали, но для второго потребуется криптографическая цифровая подпись