Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-01-2014
camiz camiz is offline
Miembro
 
Registrado: ene 2012
Posts: 69
Poder: 15
camiz Va por buen camino
desencriptar datos y mostrar en DBGrid

hola amigos del foro tengo una consulta.

estoy trabajando en una aplicacion el cual toda la informacion que guardo a la base de datos esta encriptada.
ahora quiero mostrarla en un DBGrid normalmente la informacion se muestra encriptada en el DBGrid, ahora como hago para desencriptar esa informacion y mostrarla en el dbgrid.

algunos ejemplos el cual sea yo me encargo de adaptarlo a mi proyecto, sería muy bueno.

Última edición por camiz fecha: 14-01-2014 a las 22:24:58.
Responder Con Cita
  #2  
Antiguo 14-01-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola camiz.

Un modo es:
Código Delphi [-]
...
type
  TForm1 = class(TForm)
  ...
  private
    procedure FieldGetText(Sender: TField; var Text: String; DisplayText: Boolean);
  ...
  end;
...

implementation

....

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  // abrir DataSet, etc, etc...
  with DBGrid1.DataSource.DataSet do
    for i:= 0 to FieldCount-1 do
      Fields[i].OnGetText := FieldGetText;
end;

procedure TForm1.FieldGetText(Sender: TField; var Text: String;
  DisplayText: Boolean);
begin
  Text := Descifrar(Sender.AsString);  // Aquí va tu función de descifrar
end;

...

procedure TForm1.FormDestroy(Sender: TObject);
var
  i: Integer;
begin
   with DBGrid1.DataSource.DataSet do
     for i:= 0 to FieldCount-1 do
       Fields[i].OnGetText := nil
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 14-01-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.678
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Y si la información está cifrada, ¿cómo la usas?
Quiero decir, ejemplo:
Código SQL [-]
select codigo, nombre from tbClientes where nombre containing 'z'
Responder Con Cita
  #4  
Antiguo 15-01-2014
camiz camiz is offline
Miembro
 
Registrado: ene 2012
Posts: 69
Poder: 15
camiz Va por buen camino
estoy tratando de usar el codigo de ecfisa, pero algo no esta funcionando les dejo el codigo que estoy usando para guardar los datos a la base de datos.

estoy usando la libreria Crypto y trabajo con los componentes DCP_rijndael y DCP_sha512 la funcion para encriptar es esta

Código Delphi [-]
function Cifrar(Texto, Clave: AnsiString): String;
var
  Cipher: TDCP_Rijndael;
begin
  Cipher:= TDCP_Rijndael.Create(nil);
  Cipher.InitStr(Clave,TDCP_sha512);
  result := Cipher.EncryptString(Texto);
  Cipher.Burn;
  Cipher.Free;
end;



y para guardar a la base de datos


Código Delphi [-]
        Open;
        Insert;
        FieldByName('CAM1PO').AsString := Cifrar(txtcodigo.Text,'123456');
        FieldByName('CAM2PO').AsString := Cifrar(txtvencimiento.Text,'123456');
        FieldByName('CAM3PO').AsString := Cifrar(txtafiliado.Text,'123456');
        Post



los datos se encriptan y se guardan correctamente ahora el problema al mostralos en un dbgrid se muestran tal como se han guardado. lo que quiero es mostrarlo descencriptado en el DBGrid.
esta es la funcion para desencriptar.


Código Delphi [-]
function Descifrar(Texto, Clave: AnsiString): String;
var
  Cipher: TDCP_Rijndael;
begin
  Cipher:= TDCP_Rijndael.Create(nil);
  Cipher.InitStr(Clave,TDCP_sha512);
  result := Cipher.DecryptString(Texto);
  Cipher.Burn;
  Cipher.Free;
end;

Última edición por camiz fecha: 15-01-2014 a las 15:24:35.
Responder Con Cita
  #5  
Antiguo 15-01-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola camiz.

Indudablemente el problema esta en los métodos de cifrado o en la aplicación que haces de ellos. Te adjunto un código que usa un cifrado trivial (ya que eso no hace al funcionamiento del algorítmo) para que puedas verificarlo.

El arhivo incluye una tabla con algunos datos cifrados, así que solo crea una carpeta y descomprimí el adjunto allí para poder probarlo.

Saludos
Archivos Adjuntos
Tipo de Archivo: zip camiz.zip (4,9 KB, 10 visitas)
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Mostrar datos de un ADOQuery en un DBGrid Usuaria1980 Varios 21 14-04-2011 16:40:39
Mostrar solo unos datos en un dbgrid odrack Varios 2 29-02-2008 17:21:49
Mostrar datos en DbGrid citlalliDgp Varios 1 24-12-2007 23:14:28
Mostrar datos de un Query en un DBGrid PTW Conexión con bases de datos 2 22-04-2004 19:56:53
Encriptar y desencriptar datos en una tabla!!! DarkByte Conexión con bases de datos 2 20-11-2003 17:04:30


La franja horaria es GMT +2. Ahora son las 21:39:30.


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