太多了,我还在想办法如何加密,如果资料比较重要,建议不要使用access

解决方案 »

  1.   

    办法太多了。
    在http://www.onlinedown.net
    中找一个解密工具就可以了。
    整个过程不会超过1分钟,搞定。
      

  2.   

    http://newhua.infosail.com/down/HA-A2pr-fy.zip
      

  3.   

    http://newhua.infosail.com/down/a2pr.zip
    汉化包http://newhua.infosail.com/down/HA-A2pr-fy.zip
      

  4.   

    http://www.csdn.net/expert/topic/400/400192.shtmfuction GetAccessPassword(const FileName: string; Office97: Boolean = True): string;
    const
        xorString:array[0..12]of byte=
          ( $86, $FB, $EC, $37,
            $5D, $44, $9C, $FA,
            $C6, $5E, $28, $E6,$13 );
        xorString2:array[0..20]of byte=
          ( $D3, $EC, $08, $9C,
            $93, $28, $46, $8A,
            $01, $7B, $A0, $DF,
            $22, $13, $9A, $B1,
            $61, $79, $C7, $7C,$5B);
    var
        passBuf:array[0..14]of byte;
        pass:array[0..14]of char;
        passBuf2:array[0..40]of byte;
        pass2:array[0..20]of char;
        B:Byte;
        F:TFileStream;
        I,j:integer;
    begin
      if not FileExists(FileNameEdit.Text) then
        raise Exception.Create('文件不存在');
      F := TFileStream.Create(FileName, fmShareDenyNone);
      if not Office97  then
      try
        F.Seek($42,soFromBeginning);
        F.Read(passBuf,14);
        for I:=0 to 13 do
        begin
            B := passBuf[i] xor xorString[i];
            pass[i]:=char(B);
        end;
        pass[sizeof(pass) - 1] := #0;
        Result := StrPas(Pass);
      finally
        F.Free;
      end else
      try
        F.Seek($42,soFromBeginning);
        F.Read(passBuf2,40);
        I:=0;j:=0;
        while I<40 do
        begin
            B := passBuf2[i] xor xorString2[j];
            pass2[j]:=char(B);
            inc(i,2);inc(j);
        end;
        pass2[sizeof(pass2) - 1] := #0;
        Result :=StrPas(Pass2);
      finally
        f.Free;
      end;
    end;