²©öªº¦r¦ê½s½X¤Î¸Ñ½X¡G

const 
  C1 = 52845; 
  C2 = 22719; 

function Encrypt(const S: String; Key: Word): String; 
var 
  I: byte; 
begin 
  Result[0] := S[0]; 
  for I := 1 to Length(S) do begin 
    Result[I] := char(byte(S[I]) xor (Key shr 8)); 
    Key := (byte(Result[I]) + Key) * C1 + C2; 
  end; 
end; 

function Decrypt(const S: String; Key: Word): String; 
var 
  I: byte; 
begin 
  Result[0] := S[0]; 
  for I := 1 to Length(S) do begin 
    Result[I] := char(byte(S[I]) xor (Key shr 8)); 
    Key := (byte(S[I]) + Key) * C1 + C2; 
  end; 
end; 

    Source: geocities.com/huanlin_tsai/faq

               ( geocities.com/huanlin_tsai)