Einzelnen Beitrag anzeigen

stev-e87

Registriert seit: 28. Feb 2009
20 Beiträge
 
#1

String mit AES verschlüsseln

  Alt 21. Feb 2010, 09:43
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!
Angehängte Dateien
Dateityp: pas aeslib_129.pas (13,7 KB, 30x aufgerufen)
  Mit Zitat antworten Zitat