Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Proteger mi base de datos con delphi (https://www.clubdelphi.com/foros/showthread.php?t=32297)

zvf 01-06-2006 19:36:07

Proteger mi base de datos con delphi
 
HOLA A TODOS!!

Tengo una base de datos en mysql, y el programa con el que la manipulo esta creado en delphi, lo que necesito saber es como puedo hacerle para proteger los datos de la base, y que no puedan ser modificados desde fuera del programa en delphi, el problema es que para entrar al sistema en delphi, primero el programa revisa un archivo de configuracion .ini escrito en texto puro, y ahi tiene el password para entrar a la base de datos.

¿Como puedo hacerlo?

zvf 01-06-2006 20:20:43

Lo que yo pensaba hacer para proteger la base de datos de que otra ip no pudiera accesar a ella, era una base de datos con las ip de las computadoras a las que se les permite el acceso, y asi, si no encuentra la ip actual, no le permite ingresar.

¿Si esta bien esta opcion? Ahora, lo que tambien quiere es que desde la ip actual, no se pueda modificar la base y nose como hacerlo.

GRACIAS POR SU AYUDA

seoane 01-06-2006 20:29:49

Si te entendi bien el problema es que alguien abra el archivo .ini y lea el password. Una posible solucion puede ser encriptar ese password, si algun curioso abriera el archivo no podria descifrar la clave.

Este metodo es seguro mientras no estemos hablando de un "hacker" :D porque destripando tu programa podria averiguar el metodo para encriptar la clave.

Por lo de pronto, aqui te dejo dos sencillas funciones para cifrar texto:
Código Delphi [-]
Const
  Password = $1978; // Puede ser un numero cualquiera

function Cifrar(Texto: string): string;
var
  i: integer;
begin
  Result:= '';
  RandSeed:= Password;
  for i:= 1 to Length(Texto) do
    Result:= Result + IntToHex(Byte(Texto[i]) xor Byte(Random(256)),2);
end;

function Descifrar(Texto: string): string;
var
  i: integer;
begin
  Result:= '';
  RandSeed:= Password;
  while Length(Texto) > 0 do
  begin
    if not TryStrToInt('$'+Copy(Texto,1,2),i) then
    begin
      Result:= '';
      Exit;
    end;
    Result:= Result + Char(Byte(i) xor Byte(Random(256)));
    Delete(Texto,1,2);
  end;
end;


La franja horaria es GMT +2. Ahora son las 16:04:20.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi