Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.08.26;
Скачать: [xml.tar.bz2];

Вниз

Wipe algorithms   Найти похожие ветки 

 
Stan   (2007-07-26 16:17) [0]

Всем привет. Большая просьба - подскажите где можно найти тех. описание алгоритмов стирания данных на магнитных носителях. К примеру DOD(там из несколько ), или Питера Гутмана. Часа три искал, ничего толкового не нашел. Нужно именно узнать как они работают, чтобы их реализовать.

Спасибо.


 
Yanis ©   (2007-07-26 20:59) [1]

Gutmann
procedure ZeroFillDelete(FileName: string);
var
 fs: TFileStream;
 i:  integer;
 procedure RandomWrite;
 var b:  byte;
 begin
   repeat
     b := Random(256); fs.Write(b, 1);
   until fs.Position + 1 >= fs.Size;
 end;
 procedure WritePattern(pattern: byte);
 const patt: array[5..31] of dword = ($555555, $AAAAAA, $924924, $492492,
       $249249, 0, $111111, $222222, $333333, $444444, $555555, $666666,
       $777777, $888888, $999999, $AAAAAA, $BBBBBB, $CCCCCC, $DDDDDD,
       $EEEEEE, $FFFFFF, $924924, $492492, $249249, $6DB6DB, $B6DB6D, $DB6DB6);
 var d: dword;
 begin
   d := patt[pattern] shl 8;
   repeat fs.Write(d, 3); until fs.Position + 3 >= fs.Size;
 end;
begin
 if not FileExists(FileName) then Exit;
 for i := 1 to 35 do
 try
   fs := TFileStream.Create(FileName, fmOpenReadWrite);
   try
     if (i < 5) or (i > 31) then RandomWrite
     else WritePattern(i);
   finally
     fs.Free;
   end;
 except Exit; end;
 DeleteFile(FileName);
end;

(c) Snowy
http://forum.vingrad.ru/index.php?show_type=forum&showtopic=91166


 
Yanis ©   (2007-07-26 21:01) [2]


> Нужно именно узнать как они работают

http://en.wikipedia.org/wiki/Gutmann_method


 
Yanis ©   (2007-07-26 21:03) [3]

Я вот ещё так для универа делал ^_^

procedure WipeDoD(const FileName: string;
                 var pb: TProgressBar;
                 var PercentLabel: TLabel;
                 bUpdateParent: Boolean);
var
 fs: TFileStream;
 i:  integer;
 bPB, bLB: Boolean;
 procedure WritePattern(pattern: byte);
 const patt: array[0..5] of Byte = ($00, $FF, $00, $F0, $0F, $00);
 begin repeat fs.Write(patt[pattern], 1); until fs.Position + 1 >= fs.Size; end;
begin
 if not FileExists(FileName) then Exit;

 bPB := not IsBadCodePtr(pb);
 bLB := not IsBadCodePtr(PercentLabel);
 if bPB then
   with pb do
     begin
       Min := 1;
       Position := 1;
       Max := 34;
     end;

 for i := 1 to 34 do
   try
     fs := TFileStream.Create(FileName, fmOpenReadWrite);
     try
       WritePattern(i);
       if bPB then
         begin
           pb.Position := i;
           if not bUpdateParent then pb.Update;
         end;
         
       if bLB then
         begin
           PercentLabel.Caption := Format("%d %%", [(pb.Position * 100) div pb.Max]);
           if not bUpdateParent then PercentLabel.Update;
         end;

       if bUpdateParent then pb.Parent.Update;

     finally
       FlushFileBuffers(fs.Handle);
       FreeAndNil(fs);
     end;
   except Exit; end;
 RenameFile(FileName, ExtractFilePath(FileName) + "$$$$$$$$.tmp");
 DeleteFile(FileName);
end;


 
Yanis ©   (2007-07-26 21:04) [4]


> Yanis ©   (26.07.07 21:03) [3]

По моему это как раз (америкосный?) DoD 5220.22-M.


 
Stan   (2007-07-26 21:27) [5]

Елки палки, я и забыл в википедию посмотреть. Спасибо что напомнили Yanis!
Совсем уже заработался..

Спасибо, но реализация не нужна, нужен принцип работы. Может кто то знает, как работает DOD 5200.28 -STD? Был бы очень благодарен.


 
Vlad Oshin ©   (2007-07-27 09:45) [6]

а в чем смысл такого паттерна?



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2007.08.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.043 c
15-1185772722
boriskb
2007-07-30 09:18
2007.08.26
Поздравим.


15-1185183893
Tdu
2007-07-23 13:44
2007.08.26
создание на Delphi dll для Матлаба


1-1181886899
StriderMan
2007-06-15 09:54
2007.08.26
Блочный текстовый файл.


2-1185440914
Klopan
2007-07-26 13:08
2007.08.26
Отловить отключение сетевого кабеля


2-1185876280
Мануха
2007-07-31 14:04
2007.08.26
отчет таблиц в qreport





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский