Page 1 of 1

Index, Encrypt, Dbf, y UDF

Posted: Wed Jan 02, 2008 11:29 pm
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.

Posted: Wed Jan 02, 2008 11:40 pm
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

Posted: Thu Jan 03, 2008 6:40 pm
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.

Posted: Thu Jan 03, 2008 7:50 pm
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

Posted: Fri Jan 04, 2008 4:20 pm
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

Posted: Fri Jan 04, 2008 5:48 pm
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

Posted: Sun Jan 06, 2008 9:04 pm
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