Einzelnen Beitrag anzeigen

TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#1

Problem bei XOR-Verschlüßelung

  Alt 12. Mär 2005, 14:20
Ich habe gerade eben follgende XOR-Ver- und Entschlüßelung geschrieben:
Delphi-Quellcode:
          function VerschlXor(text, key:string):string;
          var i, i2: integer;
          begin
               i2:=0;
                     for i:=0 to length(text) do begin
                     text[i]:=chr((ord(text[i]) xor ord(key[i2])));
                     if i2=length(key) then i2:=0 else inc(i2);
                     end;
               result:=text;
          end;
Nun habe ich follgendes Problem: Wenn ein Buchstabe im Text mit dem selben Buchstaben verschlüßelt wird, dann wird nicht nur der Buchstabe nicht angezeigt, sondern auch keiner der folgenden Buchstaben.

Bsp: Schlüßel ist B, text ist "hallo Baum", dann verschlüßel (ins Memo) und entschlüßel ich den Text und der Text kommt raus: "hallo " (alles ab dem B ist weg). Hat jemand eine Ahnung woran das liegt?

Intern scheint das ganze allerdings immer zu klappen, also wenn ich den verschlüßelten Text in eine Variable schreibe und auch zum Entschlüßeln aus dieser Variablen lese. Also muss
chr((ord('B') xor ord('B'))) ein Zeichen ausgeben das alle dahinterkommenden verschlingt!?
  Mit Zitat antworten Zitat