2009-06-25 4 views
5

Есть ли SDK, который можно использовать в управляемом коде для надежного уничтожения файлов?Измельчение файлов в .NET

EDIT: This является единственным связующим звеном я мог бы найти в гугле, что помогает мне

EDIT: либо SDK или какой-то компонент на основе COM.

+0

Я не думаю, что для нормальной программы (т. Е. Без интимного знания как ОС, так и носителя данных) невозможно надежно перезаписать отдельные файлы. – CodesInChaos

ответ

4

Это code from codeproject может быть хорошей отправной точкой.

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

1

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

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

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

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

1

Посмотрите на Windows.WinAny.Helper на CodePlex. У этого есть SecureDelete расширение, которое позволяет вам shredd файлы с различными алгоритмами, такими как Gutmann, DoD-7, DoD-3, Random или Quick.

Смежные вопросы