1

復号化するために、デルファイに次のコードがあります。

      new_size := Length(Source) - 1;
      for c := 24 to new_size - 1 do
        begin
          v := Source[c];
          v := v - key;
          v := v AND $FF;
          x := v XOR (Source[c + 1]);
          Source[c] := x;
        end;

どこ

      Source: Array of Byte;

      Key: Byte;

これを元に戻す(再度暗号化する)方法を簡単に知っている人はいますか?

4

1 に答える 1

7

このコードは、質問のコードの逆です。

for c := new_size - 1 downto 24 do
  Source[c] := (Source[c] xor Source[c+1]) + key;

問題のコードは、次のようにもっと簡単に書くことができます。

for c := 24 to new_size - 1 do
  Source[c] := (Source[c] - key) xor Source[c+1];
于 2012-12-03T20:45:05.027 に答える