{*******************************************************
 * Standard Decryption algorithm - Copied from Borland *
 *******************************************************}
FUNCTION Decrypt(const InSTRING:STRING; StartKey,MultKey,AddKey:INTEGER): STRING;
var
  I : Byte;
BEGIN
  Result := '';
  for I := 1 to Length(InSTRING) do
  BEGIN
    Result := Result + CHAR(Byte(InSTRING[I]) xor (StartKey shr 8));
    StartKey := (Byte(InSTRING[I]) + StartKey) * MultKey + AddKey;
  END;
END;
如果现在decrypt(bcdef,1357,2,1);请问返回值是多少?

解决方案 »

  1.   

    返回值是ghsJ.
    加密过程为:
      把每一个待加密字符转换为二进制,和StartKey(做了简单移位)异或的值重新转化为字符。
      另外,增加了一点复杂度,每次还要根据MultKey和AddKey修改StartKey
      

  2.   

    同意 76liujing(靖) 的说法,说的很好!
      

  3.   

    我试过了,不对,应该在ghsJ的哪个地方有个空格,或者什么不可显示的字符。