偶把连数据库的密码写进DELPHI程序,但是竞然可以用UE打开可以找到该字符串,我晕倒.有没办法可以隐藏起来,或使其更安全?高手帮忙,谢了.

解决方案 »

  1.   

    用PECompact之类的压缩工具来压缩
      

  2.   

    给你举个简单的加密的例子吧
    下面例子中的'瘝悏枦殟虏枩崘寪檵训殝寻澈唤阉严幕瀷炦瑦妽湚潞牛粣湂挌憢專洑搹棖◥崝;澂崘暁湅潱洖嫐褣洕寞殟寲寢攥殰妽枊嗊稇檺鹿灀寶'是'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Documents\delphiWork\DbProject\db\date.mdb;Persist Security Info=False'加密后的字符串,使用的时候解密一下就可以了当然了,这个加密过程太简单了,你写得复杂点就可以了procedure TForm1.Button1Click(Sender: TObject);
    var
      s: string;
    function TransString(s: string): string;
    var
      i: integer;
    begin
      for i:=1 to Length(s) do
        s[i] := char(ord(s[i]) xor $ff);
      Result := s;
    end;
    begin
      s := '瘝悏枦殟虏枩崘寪檵训殝寻澈唤阉严幕瀷炦瑦妽湚潞牛粣湂挌憢專洑搹棖◥崝;澂崘暁湅潱洖嫐褣洕寞殟寲寢攥殰妽枊嗊稇檺鹿灀寶';
      With ADOQuery1 do
      begin
        ConnectionString := TransString(s);
        Close;
        SQL.Text := 'select * from main';
        Open;
      end;
    end;
      

  3.   

    有用吗???
    我们最终还是要以明文的方式设置给CONNECTIONSTRING,用WINHEX这类软件直接搜索内存不就一样的,所有三层就是多么的必要了,
      

  4.   

    不仅仅如此,连接SQL时,提交的请求,其密码的加密算法非常简单,拦截IP包,逆一下就得到用户名和密码了。