RT。。最好能够根据密钥来进行加密和解密的。因为是用于网络传输,所以不希望输出的文本比要加密的文本的长度多几十倍。。呵呵,偶以前就写过一个这样的加密模块,加密后的长度是加密前的20多倍。

解决方案 »

  1.   

    加密/解密一个字符串
    { Begin code }
    program Crypt;
    uses WinCRT;
    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;var
      S: string;
    begin
      Write('>');
      ReadLn(S);
      S := Encrypt(S,12345);
      WriteLn(S);
      S := Decrypt(S,12345);
      WriteLn(S);
    end.