Index, Encrypt, Dbf, y UDF

Post Reply
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Index, Encrypt, Dbf, y UDF

Post by Raymundo Islas M. »

Hola a todos

Retomando un viejo hilo que se estuvo viendo hace unos meses acerca de encriptar los datos en las Dbfs, estoy probando la opcion de usar el encrypt / decrypt.

Esta trabajando bien, solo un pequeno detalle :

Al crear los indices : Index ON XXXXX + Decrypt( YYYYYYY, "ALGO" ) TO ZZZZZZZ

Normalmente, nos podriamos sentir "seguros" que nadie sabe el PassWord usado, pero si por X motivo la aplicacion se rompe, al momento de generar el archivo ERROR.LOG, ahi sale toda la informacion de las Dbfs usadas y sus indices y tales indices, con _ que fueron usados y por supuesto, sale nuestro PassWord :)


Estoy buscando la manera de cambiar "ALGO" por una variable que contenga cierto dato obtenido de una UDF, de tal manera que no sea "visible".

Pero, al parecer hay ciertos detalles usando variables y funciones en macros.

Alguien que pueda darme alguna mano en este punto.


Muchas Gracias por anticipado.
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Post by Raymundo Islas M. »

Perdon, se me paso comentar que no estoy usando la forma "normal" al momento de crear el indice :

INDEX ON XDBF->XCAMPO + DECRYPT(XDBF->YCAMPO) TO XINDFILE

Estoy usando un arreglo y pongo _ en una cadena :

"Str( XDBF->XCAMPO + DECRYPT( XDBF->YCMPO, 'ALGO' )"

Es por eso que se me complica un poco, "meter" el valor en esa cadena y que se ejecute correctamente.


Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Manuel Valdenebro
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Post by Manuel Valdenebro »

Ray,

Yo guardo en la DBF y en los indices la informacion encriptada. Solo la desencripto (vaya palabra) dentro de la aplicación para editarla.
Un saludo

Manuel
mantonio_08
Posts: 330
Joined: Fri May 25, 2007 9:06 pm

Post by mantonio_08 »

Raymundo:

Hola, guarda tus datos encriptados, indexas por ese campo y solo lo desencriptas desde tu aplicacion, es mas seguro, yo lo hago asi y nunca he tenido problemas.

Saludos,
Antonio
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Post by Raymundo Islas M. »

Hola amigos

Agradezco mucho sus sugerencias, al parecer no me explique correctamente, los datos y los indices estan trabajando muy bien, lo que en realidad quiero es como crear la cadena para el indexado, ya que estoy usando una macro para la generacion del mismo.

Indexado Normal :

USE CLIENTES NEW
Index On Str( CLIENTES->CODIGO, 3 ) + DeCrypt( CLIENTES->NOMBRE, "XPSWD" ) TAG CLI01


Indexado que estoy usando :

cStrCdx := {"Str( CLIENTES->CODIGO, 3 ) + DeCrypt( CLIENTES->NOMBRE, 'XPSWD' )", "CLI01" }
USE CLIENTES NEW
Index ON &cStrCdx[1] TAG &cStrCdx[2]


Ahora, hasta aqui todo trabaja OK, el detalle sale cuando si por alguna razon se llegara a romper la App en el archivo ERROR.LOG sale el detalle de las Dbfs y Cdxs en uso, y ahi sale "XPSWD" en el detalle de los indices, que es nuestro password usado, mismo que nadie deberia saber !!


Lo que intento hacer es una UDF que me genere alguna cadena a usar como password ( esto ya lo tengo ), solo me hace falta poner esa variable en la cadena de texto para que se evalue correctamente al momento de crear tal indice.

Algo asi:

cCdxKey := GenSomePswd()

cStrCdx := {"Str( CLIENTES->CODIGO, 3 ) + DeCrypt( CLIENTES->NOMBRE, cCdxKey )", "CLI01" }

Y que tome su valor cuando :

Index ON &cStrCdx[1] TAG &cStrCdx[2]


Todo esto, es solo para tratar de evitar que sepan cual es el password usado al momento de encriptar/desencriptar los datos.


Gracias y Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Manuel Valdenebro
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Post by Manuel Valdenebro »

Ray,

Yo incluso en los indices temporales, los realizo encriptado. Por otra parte, no uso las funciones Encrip/Descrip de FW, sino unas propias donde la palabra clave esta dentro de la propia función y por tanto, no aparecen (creo) en caso de error.log
Un saludo

Manuel
mantonio_08
Posts: 330
Joined: Fri May 25, 2007 9:06 pm

Post by mantonio_08 »

Raymundo:

Tu indice esta encriptado, usalo como tal, si tu programa se cae, te recomiendo que no lo desencriptes, de esa forma evitaras que alguien pueda ver tus datos claves, que uno tanto resguarda. Por mi parte cuando guardo un campo encriptado en una base, jamas lo vuelvo a desencriptar.

Espero te sirva,

Saludo,
Antonio
Post Reply