Безопасно стирание файла, используя простые методы? [дублировать

StackOverflow https://stackoverflow.com/questions/4560425

  •  14-10-2019
  •  | 
  •  

Вопрос

Возможный дубликат:
C# - Удаление файла навсегда

Привет,

Я использую C# .net Framework 2.0. У меня есть вопрос, связанный с измельчением файлов.

Мои целевые операционные системы - Windows 7, Windows Vista и Windows XP. Возможно Windows Server 2003 или 2008, но я предполагаю, что они должны быть такими же, как первые три.

Моя цель - надежно стереть файл.

Я не верю, что использование file.delete вообще безопасна. Я где -то читал, что операционная система просто отмечает необработанные данные о жестком диске для удаления при удалении файла - данные вообще не стираются. Вот почему существует так много рабочих методов для восстановления предполагаемых «удаленных» файлов. Я также читал, поэтому намного полезно перезаписать файл, потому что тогда данные на диске фактически должны быть изменены. Это правда? Это вообще то, что нужно?

Если это так, я считаю, что могу просто написать файл, полный 1 и 0, несколько раз.

Я прочел:http://www.codeproject.com/kb/files/nshred.aspx http://blogs.computerworld.com/node/5756 http://blogs.computerworld.com/node/5687 Надежно удаление файла в c#.net

Это было полезно?

Решение

Боюсь, что вы столкнетесь с сложной проблемой. Я бы посоветовал не пытаться решить это самостоятельно.

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

Я думаю, что ваши шансы могут быть лучше, если вы сможете хранить свои файлы на выделенном логическом (или даже физическом) диске, который не используется ОС или другими приложениями, и если вы убедите Windows не поменять Память, которую вы используете для удержания файла, в то время как в ОЗУ (с использованием Virtuallock ()). Тем не менее, вы должны стереть обмен, кеш и т. Д.

Кроме того, вы должны интегрировать продукт, подобный Ластик в вашем приложении (Eraser - это бесплатное программное обеспечение, а его исходный код выпущен по общедоступной лицензии GNU).

Другие советы

Из чего я прочел Решение о том, чтобы фактически сделать данные, которые больше не видимы, представляется, что это перезаписывает файл с 0 и 1.

Если файл, который вы теряете надежно, был вашим с самого начала, вы можете подумать о шифровании его в первую очередь. Затем, даже если он восстановлен после удаления, информация не будет раскрыта (при условии, что вы можете управлять клавишами).

Вы можете открыть файл и перезаписать его, используя шифр потока несколько раз. Перезапись 7 раз, а затем удаление, кажется, это норма :)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top