求加密/解密的函数
en(str: String): String;
de(str: String): String;
不管怎么样,功能不要求很强大,只要能把传出的str返回成一个和原来的str看起来不太一样的就行了。
最后两个函数应该是
str := de(en(str));
不过,最好希望能en后的字符串能用0..9a..f表示出来:)
谢谢大家了,只是太忙,自己没有空写了,如果有现成的最好,如果你没有也不必花时间去写。

解决方案 »

  1.   

    unit U_crypt;interface
    USES
      Classes;
    Const
      C1=52845;
      C2=22719;
    function Encrypt(S:String; Key:Word):String;
    function Decrypt(S:String; Key:Word):String;
    implementation
    function Encrypt(S:String; Key:Word):String;
    var
      i:Integer;
      j:Integer;
    begin
      Result:=S;
      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;
      s:=Result;
      Result:='';
      for i:=1 to Length(s) do
      begin
      j:=Integer(s[i]);
      Result:=Result+Char(65+(j div 26))+ char(65+(j mod 26));
      end;
    end;
    function Decrypt(S:String; Key: Word):String;
    var
      i:Integer;
      j:Integer;
    begin
    result:='';
    for i:=1 to (Length(s) div 2) do
    begin
      j:=(Integer(s[2*i-1])-65)*26;
      j:=j+(Integer(s[2*i])-65);
      result:=result + Char(j);
    end;
    s:=Result;
    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;
    end.
      

  2.   

    两个函数,一个加密,一个解密,有密钥key,也比较简单,看一下就会用的。
      

  3.   

    function TMyClass.Crypt(s: string; Key: Word;
      const bEncrypt: boolean): string;  //将字符串加密解密,bEncrypt=True表示加密 False表示解密
    const
      SeedA = 56789; /// 常量,你可以修改
      SeedB = 54329; /// 常量,你可以修改
    var
      i: integer;
      ps, pr : ^byte;
    begin
      if bEncrypt then
        s := s+#0;
      SetLength(Result, Length(s));
      ps := @s[1];
      pr := @Result[1];
      for i := 1 to length(s) do
      begin
        pr^ := ps^ xor (Key shr 8);
        if bEncrypt then
          Key := (pr^ + Key) * SeedA + SeedB
        else
          Key := (ps^ + Key) * SeedA + SeedB;
        pr := pointer(integer(pr) + 1);
        ps := pointer(integer(ps) + 1);
      end;
    end;
      

  4.   

    谢谢linuxyf(),由于给分过少,这回先都给ljmanage(过客),单独开一贴给你20分吧:)ljmanage(过客),不好意思,linuxyf()先了:P谢谢大家的热心帮助!