Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-06-2012
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Datos encriptados en MySQL

Estoy empezando a trabajar con este motor con Builder C++ 5. Tengo una tabla en la que los datos personales, por seguridad, están encriptados con AES_ENCRYPT y tengo este query:
Código:
SELECT num_socio, AES_DECRYPT(apellidos, @clavencrypt) ApeSoc,
AES_DECRYPT(nombre, @clavencrypt) NomSoc, login_socio FROM inscripciones
Se ejecuta sin problema y la consulta genera un resultado, pero todas las columnas encriptadas vienen vacías y todas tiene datos seguro.

Me explico mejor. Si yo ejecuto el query directamente en el shell de MySQL me devuelve, por ejemplo, esto:
Cita:
+----------------+--------+--------------+
| ApeSoc | NomSoc | login_socio |
+----------------+--------+--------------+
| MATILLA CAND┴S | ┴NGEL | angelmatilla |
+----------------+--------+--------------+
Como quiero cargar un TListView con los datos recuperados ejecuto eso:
Código:
for (; !Query->Eof; Query->Next())
{
     pItem = Lista->Items->Add();
     pItem->Caption = Query->FieldByName("login_socio")->AsString;
     pItem->SubItems->Add(Trim(Query->FieldByName("ApeSoc")->AsString) + ", " + 
          Query->FieldByName("NomSoc")->AsString);
     pItem->SubItems->Add(Query->FieldByName("num_socio")->AsInteger);
}
y el resultado que obtengo es, por ejemplo, este:

En la columna identidad debería aparecer MATILLA CANDÁS, ÁNGEL. La consulta la ejecuto con un TADOQuery y la base de datos esá conectada con un TADOConnection.
Responder Con Cita
  #2  
Antiguo 15-06-2012
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Problema resuelto

Fiado del manual de referencia de MySQL usaba la sintaxis que sugieren en él (@clavencrypt) pero con C++ Builder funciona a la perfección usando parámetros:
Código:
ADOQuery->Close();
ADOQuery->SQL->Text = "SELECT num_socio, AES_DECRYPT(apellidos, :clave) ApeSoc, "
"AES_DECRYPT(nombre, :clave) NomSoc, login_socio FROM "
"inscripciones ORDER BY ApeSoc, NomSoc, num_socio";
ADOQuery->Parameters->ParamByName("clave")->Value = clavencrypt;
ADOQuery->Open();
Responder Con Cita
  #3  
Antiguo 15-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Gracias por comentarlo
Parece que no es algo que usen muchos, pero está bien saber que se ha tratado el tema... y solucionado
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 bd mysql cl2raul Conexión con bases de datos 11 07-02-2014 23:10:46
Guardar datos en Base de Datos MySQL knnibal Conexión con bases de datos 6 23-06-2011 15:36:42
fechas y datos MySql elcigarra PHP 4 28-10-2006 18:30:37
MYSQL pierde datos Dayvis MySQL 5 02-12-2004 14:42:16
Como enviar mensajes encriptados por Internet JDNA Internet 6 18-05-2004 07:58:38


La franja horaria es GMT +2. Ahora son las 05:44:46.


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
Copyright 1996-2007 Club Delphi