2011-06-20 13 views
1

私はInno Setupのを使っていますが「暗号」パスワード:Inno Setup:Ord Functionまたはeqivalent?

function XORcrypt(Value,Key: string): string; 
var 
    p,k,pl,kl: integer; 
begin 
    {very basic encryption, using bitwise XOR} 
    result:=Value; 
    pl:=Length(Value); 
    kl:=Length(Key); 
    if (pl>0) and (kl>0) then 
    begin 
     p:=1; k:=1; 
     while (p<=pl) do 
     begin 
      Result[p]:=Char(Ord(Value[p]) XOR Ord(Key[k])); 
      if k=kl then k:=1 else k:=k+1; 
       p:=p+1 
     end; {while} 
    end; {if} 
end; {XORcrypt} 

INNOは

(「C」のため67)要求された文字のASCII値を返すパスカル関数 オードを知っていないようです

どのような解決策ですか?

答えて

3

問題はありませんOrd()それはChar()の代わりにChr()を使用する必要があります。

function XORcrypt(Value,Key: String): String; 
var 
    p,k,pl,kl: integer; 
begin 
    {very basic encryption, using bitwise XOR} 
    result:=Value; 
    pl:=Length(Value); 
    kl:=Length(Key); 
    if (pl>0) and (kl>0) then 
    begin 
     p:=1; k:=1; 
     while (p<=pl) do 
     begin 
      Result[p]:=Chr(Ord(Value[p]) XOR Ord(Key[k])); 
      if k=kl then k:=1 else k:=k+1; 
       p:=p+1 
     end; {while} 
    end; {if} 
end; {XORcrypt} 
関連する問題