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!?