was ist neu ¦  programmier tips ¦  indy artikel ¦  intraweb artikel ¦  informationen ¦  links ¦  interviews
 sonstiges ¦  tutorials ¦  Add&Win Gewinnspiel

Tips (1547)

Dateien (137)
Datenbanken (90)
Drucken (35)
Grafik (115)
IDE (21)
Indy (5)
Internet / LAN (131)
IntraWeb (0)
Mathematik (76)
Multimedia (45)
Oberfläche (107)
Objekte/
ActiveX (51)

OpenTools API (3)
Sonstiges (127)
Strings (83)
System (268)
VCL (243)

Tips sortiert nach
Komponente


Tip suchen

Tip hinzufügen

Add&Win Gewinnspiel

Werbung

29 Visitors Online


 
...eine Datei permanent löschen?
Autor: P. Below
Homepage: http://www.teamb.com
[ Tip ausdrucken ]  

Tip Bewertung (11):  
     


{
  If you want to get rid of a file normally you just delete it.
  But someone else can undelete it if the file hasn't been wiped correctly.
  For security purposes, to insure that certain files are permanently
  gone, the WipeFile procedure writes over the data in the file with
  random characters and then erases it.

  Wenn man eine Datei nicht mehr braucht, löscht man sie einfach.
  Aber jemand anders kann die Datei wieder herstellen, wenn sie
  nicht "richtig" gelöscht wurde.
  Aus Sicherheitsgründen, um sicherzustellen, dass eine Datei permanent
  gelöscht wird, überschreibt die WipeFile Prozedur eine Datei mit
  Zufalls-Zeichen und löscht sie anschliessend.
}

procedure WipeFile(FileName: string);
var
  
buffer: array [0..4095] of Byte;
  max, n: LongInt;
  i: Integer;
  fs: TFileStream;

  procedure RandomizeBuffer;
  var
    
i: Integer;
  begin
    for 
i := Low(buffer) to High(buffer) do
      
buffer[i] := Random(256);
  end;
begin
  
fs := TFilestream.Create(FileName, fmOpenReadWrite or fmShareExclusive);
  try
    for 
i := 1 to do
    begin
      
RandomizeBuffer;
      max := fs.Size;
      fs.Position := 0;
      while max > 0 do
      begin
        if 
max > SizeOf(buffer) then
          
n := SizeOf(buffer)
        else
          
n := max;
        fs.Write(Buffer, n);
        max := max - n;
      end;
      FlushFileBuffers(fs.Handle);
    end;
  finally
    
fs.Free;
  end;
  Deletefile(FileName);
end;

 

Bewerten Sie diesen Tipp:

dürftig
ausgezeichnet


Copyright © by SwissDelphiCenter.ch
All trademarks are the sole property of their respective owners