Hallo Leute,
ich versuche momentan einen String (= Inhalt einer
XML- Komponente) mittels AES zu verschlüsseln, was natürlich nicht klappt. Sonst wär ich ja nicht hier drin
Ich benutze dafür die AESLib von J. Rathlev (
www.rathlev-home.de/sources/delphi.html) und das dazugehörige Sample. In diesem wird leider nur das Verschlüsseln von Dateien angeboten, es wird also mit Filestreams gearbeitet. Das ganze sieht jetzt so aus:
Code:
procedure Encrypt(Pwd:String);
var
s : string;
sDest, sSource : TFileStream;
Len : longint;
begin
//Stream nach File sichern, Umweg nötig, da Handling mit TStringstreams nicht geht
//Wird am Ende der Routine gelöscht (Mehrfachüberschreibung)
frm_Safe.com_XML.SaveToFile('database2.xml');
s:= 'database.tcdb';
sSource:=TFileStream.Create('database2.xml',fmOpenRead+fmShareDenyNone);
sDest:=TFileStream.Create(s,fmCreate);
Screen.Cursor:=crHourGlass;
with TEncryption.Create(Pwd,0,defCryptBufSize) do begin
if EncryptStream(sSource,sDest) then begin
//MessageDlg ('File encrypted to: '#13+s,mtInformation,[mbOK],0);
//edtFiles.Text:=s;
end
else
MessageDlg ('Beim Verschlüsseln ist ein Fehler aufgetreten!',mtError,[mbOK],0);
Free;
end;
sSource.Free;
sDest.Free;
Screen.Cursor:=crDefault;
//Mehrfachüberschreibung
//http://www.delphi-treff.de/tipps/dateienverzeichnisse/wiki/Dateien%20ohne%20R%C3%BCckst%C3%A4nde%20entfernen/
ShredFile('database2.xml',3);
end;
Ich möchte den Umweg über eine Datei vermeiden, weil es ohne Shreddern zu unsicher ist und das Shreddern der Dummy- Datei Performance kostet, die ich einsparen könnte. Habe versucht die Filestreams durch normale Streams,... zu ersetzen, hin und her konvertiert. Das verschlüsselte Ergebnis ist dann speicherplatztechnisch viel Kleiner als das Ausgangsmaterial (der
XML- Inhalt), was logischerweise keinen Sinn macht. Ich schaffe es einfach nicht mit anderen Typen als Filestreams zu arbeiten.
Im Source der AESlib finde ich auch einfach keinen Anhaltspunkt... hänge Sie mal mit an den Thread, falls einer nachschauen mag.
Hoffe einer von euch hat bei diesem Thema mehr Durchblick. Wäre auch über eine Alternative zu J.Rathlevs Version froh.
Danke!