Einzelnen Beitrag anzeigen

axelf98

Registriert seit: 27. Aug 2003
Ort: Ennepetal
440 Beiträge
 
Delphi 2005 Personal
 
#1

String XOR Verschlüsselung - in Datei speichern

  Alt 6. Aug 2007, 08:54
Hallo,
ich hab grad ein kleines Problem mit einer XOR-Verschlüsselung. Es soll eine XML-Datei als String XOR-Verschlüsselt werden. Dazu wird ein Passwort benutzt. Das klappt wunderbar solange man die Dateien nicht speichert. Es scheint ein Problem mit Zeilenumbrüchen zu geben. Nach dem Laden ist nur noch die erste Zeile Richtig.

Könnt ihr mir helfen?
Ich tippe, dass es an
procedure LadeTextausDatei(pPfad:String);
procedure SpeichereTextinDatei(pPfad:String);
liegt.

Danke!
Delphi-Quellcode:
unit sicherheit;

interface uses Dialogs,classes;

type TVerschluesselung = class

    constructor _create(Schluessel,Daten: WideString);
    function Entschluesseln: WideString;
    function Verschluesseln: WideString;
    procedure LadeTextausDatei(pPfad:String);
    procedure SpeichereTextinDatei(pPfad:String);
    destructor _destroy;

    public
    private
     Data,key: WideString;
     index: integer;
     _Ergebnis: WideString;
     function nextkeybyte: integer;
    
end;

implementation

{ TVerschluesselung }


constructor TVerschluesselung._create(Schluessel, Daten: WideString);
begin
     if length(Schluessel) < 2 then exit;
     key:= Schluessel;
     Data := Daten;
     index := 0;
end;

function TVerschluesselung.Entschluesseln: WideString;
begin
     result := Verschluesseln;
end;

function TVerschluesselung.nextkeybyte: integer;
begin
     result := ord(key[(index mod length(key))+1]);
     inc(index);
end;

function TVerschluesselung.Verschluesseln: WideString;
var Ergebnis: String;
    i: integer;
begin
     Ergebnis := '';
     for i:= 1 to length(Data) do
     begin
          Ergebnis := Ergebnis + chr(ord(Data[i]) XOR nextkeybyte);
     end;
     result := Ergebnis;
     _Ergebnis := Ergebnis;
end;

destructor TVerschluesselung._destroy;
begin
     //
end;

procedure TVerschluesselung.LadeTextausDatei(pPfad: String);
var txtDatei: TStringlist;
begin
     txtDatei := TStringList.Create;
     txtDatei.LoadFromFile(pPfad);
     Data := txtDatei.Text;
     txtDatei.Destroy;
end;

procedure TVerschluesselung.SpeichereTextinDatei(pPfad: String);
var txtDatei: TStringlist;
begin
     txtDatei := TStringList.Create;
     txtDatei.Add(_Ergebnis);
     txtDatei.SaveToFile(pPfad);
     txtDatei.Destroy;
end;

end.
  Mit Zitat antworten Zitat