Я знаю, как стереть файл в C #, включая его сектора и тому подобное.
Но как мне перезаписать сами каталоги?
Пример: @"C:\mydirectory\"
должен быть невосстановим, ушел навсегда (все внутренние файлы уже стерты), чтобы было невозможно восстановить структуру каталогов или их имена.
------------------- Обновление ниже (форматирование комментариев - такая сложная задача, поэтому я выкладываю его здесь) ---
Для удаления файла я просматриваю кластер и раздел раздела.размер и перезаписать его как минимум 40 раз, используя 5 разных алгоритмов, где последний алгоритм всегда случайный.Данные также фактически записываются на диск каждый раз (а не только в память или что-то в этом роде).Единственный риск состоит в том, что, когда я что-то стираю, физический адрес на диске этого файла теоретически может быть изменен.Единственное решение, которое я знаю для этого, состоит в том, чтобы также стереть свободное дисковое пространство после того, как файл был стерт, и надеяться, что никакой другой файл в настоящее время частично не содержит старого физического местоположения стертого файла.Или Windows не делает этого?
http://www.sans.org/reading_room/whitepapers/incident/secure-file-deletion-fact-fiction_631 заявляет:
"Важно отметить, что перезапись данных только снижает вероятность данныхвосстанавливается. Чем больше раз данные перезаписываются, тем дороже и труднее восстанавливать данные. Фактически Питер Гутман утверждает: «… фактически невозможно очистить места хранения, просто перезаписав их, независимо от того, сколько проходов перезаписиили какие образцы данных записаны ». 3 Перезаписанные данные можно восстановить с помощью магнитно-силовой микроскопии, которая имеет дело с образцами намагничивания на пластинах жесткого диска. Фактические подробности того, как это выполняется, выходят за рамки данной статьи."
Лично я считаю, что когда я перезаписываю данные более 100 раз, используя разные (возможно неизвестные) алгоритмы (и если нет копии данных, оставленных в другом месте, например, в файлах подкачки), этовозьму любую очень дорогую командупрофессионалы много лет, чтобы получить эти данные обратно.И если они вернут данные после всех этих лет, то, я полагаю, они этого заслуживают ... Это должен быть проект на всю жизнь.используйте шифр (http://support.microsoft.com/kb/315672) или заполните жесткий диск файлами 4 ГБ или используйте исполняемый файл командной строки Eraser.
очистка файлов подкачки:? очистка поврежденных секторов:? Стирание каталогов: используйте Eraser (как сказал Теоман Сойгул) Как мы точно знаем, что мы перезаписали реальные физические адреса? Стирание самых последних использованных файлов и WindowsЛог-файлы, конечно, должны быть легким делом для любого программиста:) Eraser решает большинство из перечисленных проблем, но не может стереть файлы страниц.Поэтому любая криминалистика все равно найдет данные обратно, если они были в этих файлах подкачки в любой момент. Ластик AFAIK не стирает таблицы размещения файлов.Но я не уверен.
И тогда следует сделать такой вывод: (почти) невозможно безопасно стереть в C #?