请大侠们给几个字符串的加密和解密的算法例程,就是我对字符串加密后保存,然后读取的时候能解密恢复,请给出加密和解密的源码例程!!!非常之急!!!!!!

解决方案 »

  1.   

    // XOR 加密/解密
    function XorEncDec(AStr:String;Key:Byte):String;
    var
      i,n:Integer;
    begin
      n:=Length(AStr);
      SetLength(Result,n);
      for i:=1 to n do
        Result[i]:=Char(Byte(AStr[i]) xor Key);
    end;
    //加法加密
    function AddEnc(AStr:String;Key:Byte):String;
    var
      i,n:Integer;
    begin
      n:=Length(AStr);
      SetLength(Result,n);
      for i:=1 to n do
        Result[i]:=Char(Byte(AStr[i])+Key);
    end;
    //加法解密
    function AddDec(AStr:String;Key:Byte):String;
    var
      i,n:Integer;
    begin
      n:=Length(AStr);
      SetLength(Result,n);
      for i:=1 to n do
        Result[i]:=Char(Byte(AStr[i])-Key);
    end;  其中XorEncDec的加密/解密均为同一个过程,而加法加密、解密则需要两个过程配套使用。eg:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Edit2.Text:=XorEncDec(Edit1.Text,123); //加密(Edit1中存放明文,Edit2存放密文)
    end;
    procedure TForm1.Button2Click(Sender: TObject);
    begin
      Edit1.Text:=XorEncDec(Edit2.Text,123); //解密(Edit2存放密文,Edit1中存放解密的明文)
    end;