unigui中实现加密ini配置文件内容读取

1、加入以下三个pas文件。

2、在MainModule中UniGUIMainModuleCreate事件中读取ini配置。

uses
System.IniFiles;

var

  myfile: string;
  Ini: TIniFile;
  dbstren, dbuseren, dbpassen: string;
 
begin
  myfile := UniServerModule.StartPath + 'sysSetting.ini';
  Ini := TIniFile.Create(myfile);  
  dbstren := Ini.ReadString('application', 'dbHost', '127.0.0.1');
  dbuseren := Ini.ReadString('application', 'dbuser', 'root');
  dbpassen := Ini.ReadString('application', 'dbpassword', 'root');
end;

3、解密读取的相关变量。

var
  KeyBit: TKeyBit;
  APaddingMode: TPaddingMode;
  myfile, dbconnstr: string;
  Ini: TIniFile;
  dbstren, dbuseren, dbpassen: string;
  dbstr, dbuser, dbpass: string;
begin
  myfile := UniServerModule.StartPath + 'sysSetting.ini';

  Ini := TIniFile.Create(myfile);
  try
    FDConn.Close;
    FDConn.Params.Clear;
    FDConn.DriverName := 'MySQL';    //
    KeyBit := kb128;
    APaddingMode := pmZeroPadding;
   
    dbstr := AESDecryptStrFromHex(Trim(dbstren), 'miyue', TEncoding.ANSI, TEncoding.UTF8, KeyBit, 'miyue', APaddingMode, false, rlCRLF, rlCRLF);
    dbuser := AESDecryptStrFromHex(Trim(dbuseren), 'miyue', TEncoding.ANSI, TEncoding.UTF8, KeyBit, 'miyue', APaddingMode, false, rlCRLF, rlCRLF);
    dbpass := AESDecryptStrFromHex(Trim(dbpassen), 'miyue', TEncoding.ANSI, TEncoding.UTF8, KeyBit, 'miyue', APaddingMode, false, rlCRLF, rlCRLF);
    FDConn.Params.Add('Server=' + dbstr);
    FDConn.Params.Add('User_name=' + dbuser);
    FDConn.Params.Add('password=' + dbpass);
    FDConn.Params.Add('Database=' + Ini.ReadString('application', 'dbName', 'ungsm'));
    FDConn.Params.Add('characterset=gbk');
    FDConn.Connected := True;
  except
    on E: Exception do
    begin
      Ini.Free;
      UniServerModule.Logger.AddLog('连接数据库出错,出错信息:' + E.message);
      //showMessage('数据库连接失败!!! 程序运行异常,数据不能保存。');
    end;
  end;
  Ini.Free;
end;
发布了303 篇原创文章 · 获赞 59 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/winniezhang/article/details/104203342