3 - Implementando e Entendendo o Codigo:
unit Udm;
interface
uses
SysUtils, Classes, DBXpress, DB, SqlExpr,
IniFiles; //Classe que trabalha com arquivos .INI
type
TDm = class(TDataModule)
Conexao: TSQLConnection;
procedure ConexaoBeforeConnect(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
UserBD, { Usuário do Banco de Dados }
PassDB, { Senha do Banco de Dados }
PathBD, { Path do Banco de Dados }
Fundo2, {Imagem do Fundo}
Path, {Path do Banco de Dados}
PathImage, {Path das Imagens}
PathSkin, {Path dos Skins}
Usuario: String; {Armazena o Usuario}
{ Funções de Encriptação e Decriptação de Dados esta na sessão Public pois se trata de procedimento publico}
function Encrypt(const S: String; Key: Word): String;
function Decrypt(const S: ShortString; Key: Word): String;
end;
var
Dm: TDm;
implementation
{$R *.dfm}
const
{ Constantes que irão ser utilizadas nos cálculos das rotinas de criptografia e podendo ser alteradas conforme o gosto do leitor.}
C1 = 52845;
C2 = 22719;
{Procedimento do Evento BeforeConnect do Objeto sqlConnection onde irá ler todas as informações do arquivo Ini criptografado}
procedure TDm.ConexaoBeforeConnect(Sender: TObject);
var
ConfigIni : TIniFile;
Path : String;
begin
//Seta as propriedades da conexão em tempo de execução pegando os dados do arquivo config.ini
ConfigIni := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Config.ini');
Conexao.Params.Values['Database']:= ConfigIni.ReadString('CONFIG', 'DATABASE', '');
ConfigIni.Free;
end;
{Função declarada acima encarregada de encriptar os dados, como podemos ver as Contasntes C1 e C2
estão sendo utilizadas para a execução desse bloco de co