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

本文介绍如何在Delphi中使用TIniFile组件读取INI配置文件,并通过AES解密敏感信息如数据库连接字符串。展示了如何设置数据库参数并建立连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值