Обнаружить и обработать приложение внезапной конечной задачи, перезапустить и завершить работу? - PullRequest
1 голос
/ 22 октября 2011

У меня есть приложение, которое хранит зашифрованный документ XML, каждый раз, когда приложение хочет получить доступ к XML-файлу, которое ему необходимо (decrypt -> read -> write -> encrypt). если внезапное завершение работы или перезапуск хотя бы конечной задачи из диспетчера задач приведет к поврежденным данным в XML-файле или к незашифрованному XML-файлу, поэтому при следующем запуске он выдаст ошибку.

Я хочу сохранить все содержимое XML в базе данных и проверить, нет ли ошибок, а затем заменить старое содержимое.

Любые идеи, советы или мысли высоко ценится.

1 Ответ

2 голосов
/ 22 октября 2011

Вы должны сделать дешифрование / шифрование в памяти.Никогда, никогда не храните незашифрованные данные на диске.Загрузите зашифрованные данные, расшифруйте их в памяти.При сохранении сначала зашифруйте в памяти, а затем сохраните.

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

Лучшим, но более сложным вариантом является перемещение всего в базу данных с поддержкой транзакций.

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