2010-05-03 4 views
3

В попытке узнать python и/или ruby, мне было интересно, как будет реализован файловый шредер? Я хотел бы, чтобы он взял файл в качестве аргумента, а затем применил алгоритм, чтобы сделать этот файл неустранимым. Возможно, позже будет добавлена ​​поддержка нескольких файлов или даже целых каталогов.Написание файла shredder в python или ruby?

+0

Хм ... вы провели какое-либо исследование того, как файловые измельчители работают вообще? – FrustratedWithFormsDesigner

+0

Да, у меня относительно базовое понимание. Обычно место памяти, где хранится файл, перезаписывается несколько раз; все 0, а затем все 1, а затем случайный ассортимент. Не так точно каждый раз, но что-то относительно похоже – pmilb21

ответ

3

Как известно, измельчители, как правило, будут иметь различные уровни успеха в современных системах благодаря журналам, файловым системам с копированием на запись, выравниванию износа (вспышка) и другим методам, используемым в современной системе. Могу ли я захотеть check out wikipedia на некоторых подводных камнях.


Короче говоря, вам нужно будет писать непосредственно поверх существующих данных. Существует несколько разных шаблонов различного уровня безопасности, но часто, если вы перезаписываете файл примерно в 25 раз случайными данными (округляя до следующего размера блока), файл должен быть полностью невосстановимым (по крайней мере, эта копия данных). Существуют и другие методы, которые могут безопасно перезаписать его за меньшее количество проходов (3 прохода, случайные, одно, а затем нули также работают прилично).

+0

С более новыми жесткими дисками даже одна перезапись со случайными данными достаточно, чтобы убить любую программную схему восстановления и сделать аппаратное восстановление довольно жестким. Конечно, современные системы, как правило, делают сумасшедшие вещи, которые не позволяют переписать их на самом деле. Например. В Windows есть теневые копии файлов, которые хранятся для тех, кто знает, как долго. Поскольку они, как правило, частично основаны на времени, перезапись файла не будет иметь никакого эффекта независимо от того, сколько раз вы это делаете. Аппаратная очистка обычно довольно надежна, хотя она избавляется от ВСЕХ данных; это не выборочно. – Brian

+0

Итак, как бы перезаписать файл в его текущем местоположении? – pmilb21

+1

@ pmilb21, вы пропустили точку. Вы не можете перезаписать файл в своем текущем месте с помощью современной файловой системы. Единственный способ уничтожить данные - размонтировать диск, открыть его как блок-устройство и уничтожить все его содержимое. – mikerobi

1

Поскольку это учебное упражнение, а не профессиональная попытка защитить данные. Как насчет этого: 1. Откройте длину файла. 2. Напишите 0 на одну и ту же длину файла. 3. Сохраните файл. 4. Удалите файл.

Затем создайте другую программу, которая пытается восстановить файл.

Но да, если вы хотите сделать что-то профессиональное, а не просто упражнение, загляните в ответ кицунэ.

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