>>305
たとえばカタカナ同士の LeadingByte は同じだから、Xor をとればゼロになる。
だから、文字列の長さを間違う。

procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s := XorEnCode('諸星弾&友里アンヌ','ウルトラ警備隊');
Label1.Caption := s;
Label2.Caption := XorEnCode(s,'ウルトラ警備隊');
end;

ならうまくいくが、

procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := XorEnCode('諸星弾&友里アンヌ','ウルトラ警備隊');;
Label2.Caption := XorEnCode(Label1.Caption,'ウルトラ警備隊');
end;

失敗する。暗号化したものは文字列として受け取ることは危険。