Уничтожение файлов в .NET

Существует ли SDK, который можно использовать в управляемом коде для безопасного уничтожения файлов?

РЕДАКТИРОВАТЬ: Этоединственная ссылка, которую я смог найти в гугле, которая мне помогает

РЕДАКТИРОВАТЬ: Либо SDK, либо какой-то компонент на основе COM.


person Developer    schedule 25.06.2009    source источник
comment
Я не думаю, что обычная программа (то есть без глубоких знаний как ОС, так и носителя) может надежно перезаписывать отдельные файлы.   -  person CodesInChaos    schedule 30.06.2011


Ответы (3)


Этот код из codeproject может стать хорошей отправной точкой.

Eraser существует уже много лет, вы можете вызвать его с помощью System.Diagnostics.Process, или хотя бы пересмотрите алгоритм там.

person Sam Saffron    schedule 25.06.2009

Взгляните на Windows.WinAny.Helper на CodePlex. Он имеет расширение SecureDelete, которое позволяет уничтожать файлы с помощью различных алгоритмов, таких как Gutmann, DoD-7, DoD-3, Random или Quick.

person HABJAN    schedule 23.08.2013

Технологии изменились за последние несколько лет, поэтому, когда я случайно увидел этот ответ (почему ответ не был принят снова?), я хотел предоставить обновленную информацию для других с похожими вопросами.

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

Скорее всего, вам придется написать несколько файлов меньшего размера, и когда вы заполните FS, удалите один, а затем продолжите запись нового, чтобы убедиться, что все зарезервированное пространство также было перезаписано. Тогда вы, вероятно, будете в относительной безопасности. Наверное.

Я говорю, вероятно, потому что носитель/FS может решить, что блок вышел из строя (или используется слишком много относительно) и отобразить его, заменив вместо этого какую-то другую часть диска. Конечно, это относится к каждому блоку, поэтому вряд ли будет реконструирован любой файл гораздо большего размера.

person Seth Robertson    schedule 05.06.2011