Ler Arquivo de Inicialização criptografado

14/01/2013

4

Boa noite pessoal,

Tenho uma aplicação em delphi conectado à uma pequena base de dados em Access, estou utilizando uma senha no Banco de Dados para evitar que qualquer usuário acesse o mesmo e altere qualquer informação, como por exemplo, nível de usuário.

Para conectar ao banco de dados estou utilizando um arquivo de inicialização com os seguintes parametros:

procedure TDM.DataModuleCreate(Sender: TObject);
var
param:string;
begin
  iniConf:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'conf.ini');
  param:= iniConf.ReadString('banco_dados','conexao','');
  dm.conexao.ConnectionString := param;
  dm.conexao.Connected := true;
end;



O problema é que no arquivo de inicialização fica armazenado a senha do banco de dados, então o que fiz foi pegar o caminho da conexão e criptografá-lo, utilizei o componente TomEncript para fazer isso com uma chave de segurança.

Conexão descriptografada:

[banco_dados]
conexao=Provider=MeuPC.Jet.OLEDB.4.0;Data Source=C:\Dolar\dolar.mdb;Mode=Share Deny None;Extended Properties="";Persist Security Info=False;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password=102030;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;


assim funciona, depois de criptografar ficou da seguinte maneira:

63D35FA360AC6CA467BC13B217463E21E725FC12E529EC1858FB59A265AA62BB88BA4AD97EDD60FD0914211911F54BF43548BCCFCF69FE4CF555C654DB8FD070D475B572CC62F3200B14F464E672E439CC4DCD9472B972D915B428BF918D9685988DC269BA1BA4F576889F66D3769E7C8F89DF75E83BE630FC1FEB2ECD59CA0C79AAFE57CE57BB40D922F86DF268FA42D92AFD054AE33DCD49B4CA1DBB42CE69C148CC83BC7DF0057682B85BAD50DA3837F523A537A838C645E176F743E226EE3DBC384FFE280121E921E537DF60E93BB9768388B7B6A88CB86AEC3DBD38103D1C240718E32BF969EC63B16FB94EB344C359D365E07AEC6DB14BD93AC183DC60E6106AFE410C321D103B0D2803055EF7578EC371898B9FAC8EA785D87DACC97BA98EA2B387879582D6084A9DD0748091938C9592C626A53B92A2BA9692987DF22C0C6397E81135C85BCF5EBAB568BD02469E32F37DDC20E33F3011F55BA8EB1532FE1042FE3BEF5AE81168E567A46FB8AA83889B69FD60E275D128E027E93CDB25F640434EA93DDC9587A189BD6FC762F55D4CA269B475A568AB7EF035A428AA1012ED311C510351F52F9181E11C0C3918200C0E1C13F36BBB3E859563AB6BE459D524F166F75A8DA78486809C72C263BC031353AD9F8AAF9B8F8D9F7C81C308196FBD5BDF30FE02082B0554F05588AE919578F737EC5CD4256F82C35FEF0755F717E80C589636A838C94605061B4BE13FD87BEC61E748E72AE437EC47FF11B7E70660C864C572DA3AC857CC0246579C6BB67C9960A4AB938CCE0B459A96DF51C45ACB5AA2ABC315B0161638E135C6968AB889FF729DC264DD78CC41DD3ECD7D


O que eu preciso é de uma forma de descriptografar essa conexão e fazer com que o aplicativo consigua pegar os seus parametros, algúem tem alguma dica de como fazer isso?? tem como jogar todo esse texto criptografado em uma string? porque assim consigo descriptografá-lo e depois nao sei tem como, mas pensei em joga-lo para um outro arquivo de inicializaçao dentro próprio Delphi. Se alguem tiver alguma dica, agraço.

obrigado
Responder

Posts

Vc tem q criptografar na hora de gravar e descriptografar quando for ler para verificar os seus parâmetros!

Caso nao tenha uma funcao q criptografa e outra chave para descriptografar, por favor sinalize!!
Responder

14/01/2013

Alessandro

Sim mas o arquivo irá ficar na pasta com os demais arquivos do sistema, logo ele precisa já estar criptografado, que foi o que eu fiz, então preciso apenas descriptografar na hora de ler...
Responder

15/01/2013

Rodolpho Silva

Qual é o componente/rotina que você usou para criptografar sua string?
Responder

15/01/2013

Alessandro

Eu estou usando o componete TomEncript, na verdade consegui resolver... ao invés de trabalhar com arquivo de inicialização, apenas criptpgrafei a string de conexão, quando crio o formulário então estou descriptografando a string e jogo em componete do tipo RichEdit por exemplo. depois apenas atribuo o conteudo do memo ao componete de conexão.. assim:


dm.conexao.ConnectionString := frmAcesso.RichEdit2.Text;
dm.conexao.Connected := true;



Assim funcionou

obrigado a todos...
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira