用DES或3DES吧!不过好像加密数据长度有限制!

解决方案 »

  1.   

    就用DES加密
    我有源代码,用C++Bullder写的。不过可以转成Delphi。
      

  2.   

    下面是我的代码,太简陋,各位老大不要笑话,权当抛砖引玉
    procedure TForm1.Button1Click(Sender: TObject);
    var i,j,totalcount:integer;
        filestream:Tfilestream;
        filename:string;
        tmpAsc:integer;
        buffer:string;
        buffersize:integer;
    begin
    opendialog1.Filter :='';
    if not opendialog1.Execute then exit;
    filename:=opendialog1.FileName ;
    try
    begin
      filestream:=Tfilestream.Create(filename,fmopenread);
      //把文件读入字符串变量
      buffersize:=filestream.Size ;
      setlength(buffer,buffersize);
      filestream.Read(pointer(buffer)^,buffersize);
      filestream.Free ;
      ///进行加密处理
      for i:=1 to buffersize do
      begin
        tmpasc:=ord(buffer[i]);
        tmpasc:=tmpasc xor 12;
        buffer[i]:=chr(tmpasc);
      end;
      //写回文件
      filestream:= tfilestream.Create(filename+'.mym',fmcreate);
      filestream.Write(pointer(buffer)^,buffersize);
      end;
      filestream.Free ;
    except
      showmessage(inttostr(getlasterror));
    end;
      showmessage('加密成功');
    end;procedure TForm1.Button2Click(Sender: TObject);
    var filename:string;
        filestream:Tfilestream;
        buffer:string;
        buffersize:integer;
        i:integer;
    begin
    opendialog1.Filter:=('加密文件|*.mym');
    if not opendialog1.Execute then exit;
    filename:=opendialog1.filename;
    try
      ///读
      filestream:=Tfilestream.Create(filename,fmopenread);
      buffersize:=filestream.Size ;
      setlength(buffer,buffersize);
      filestream.Read(pointer(buffer)^,buffersize);
      filestream.Free ;
      //解密
      for i:=1 to buffersize do
      begin
        buffer[i]:=chr(ord(buffer[i]) xor 12);
      end;
      //写回
      filename:=copy(filename,1,length(filename)-4);
      filestream:=Tfilestream.Create(filename,fmcreate);
      filestream.Write(pointer(buffer)^,buffersize);
      filestream.free;
    except
      showmessage(inttostr(getlasterror));
    end;
    showmessage('解密完成');
    end;