RE:Como proteger Base de Datos
Existen varias formas de proteger tus bases de datos, te voy a exponer varias pero solo una es 100% segura.
Vamos a ir de la mas tonta a la mas compleja:
1) Cambiarle las extensiones a los archivos, en vez de que sean DBF, cambiale las extensiones por ejemplo DAT, FIL, etc.
2) Encripta los datos dentro del archivo DBF, es decir, cuando guardes algun dato haz:
REPLACE campo WITH Encripta (valor)
Y escribes la funcion Encritpa donde te armas algun algoritmo de encriptamiento, nota: FiveWin trae una funcion encripta.
Esta es un arma de 2 filos, porque la informacion se almacena encriptada en tu dbf pero para presentarsela al usuario deberas hacer el proceso inverso, es decir, desencriptar para presentarla en pantalla, y esto puede hacer tu aplicacion tremendamente lenta.
La pega que presenta esta solucion es que solo puedes aplicar el encriptamiento sobre campos cadena de caracteres, con lo cual olvidate de las fechas. numeros, logicos, etc.
3) "Corrupción controlada" de la base de datos, este truco funciona muy bien pero es dificil de implementar en programas que corren en red.
para empezar necesitamos entender como es por dentro un DBF, el DBF tiene una "cabecera" cuyo primer byte SIEMPRE es 03H o 38H, es 03H cuando el dbf no tiene campos memo y es 38H cuando tiene campos memo ( si quieren mas informacion sobre el tema lean este articulo : http://www.avemundi.com/software/articulos/20020503.htm)
Si mueves cualquier byte, te cargas la DBF, ya no se puede abrir ni con el mismo DBASE ni con excel, ni con nada, lo que tienes que hacer es, utilizando la funcion FOPEN() de Clipper, abri el archivo DBF, luego, con la funcion FWRITE() escribir CUALQUIER COSA distinta de 03H o de 38H en el primer byte y cerrar con FCLOSE(), con esto queda "dañanda" la DBF.
Entonces, cuando entras a tu programa, corres una rutina que "descorrompe" los datos y luego cuando terminas corres la rutina que los vuelve a corromper.
Esto es dificil de controlar en red, porque no siempre tienes las dbfs disponibles para "corromperlas", porque las tiene ocupadas otro usuario, asi que hay que implementar ciertos mecanismos de control para poder proteger las tablas
Continuo en un siguiente comentario, donde les voy a enseñar con que realmente pueden proteger los datos.