Pregunta: | 4161 - ENCRIPTAR CABECERAS DE TABLAS DBF |
Autor: | Sergio Gómez de Travesedo Rojas |
Hola amigos de LWP: Recurro a vosotros para ver si podeis ayudarme con un problemilla que tengo...ahí va: Estoy realizando un programa, en estado muy avanzado, y necesito proteger los datos de mis tablas contra la lectura no autorizada, es decir trato de que nadie pueda acceder a mis tablas si no es a traves de mi programa, ya que considero contienen una información muy valiosa que ha costado mucho esfuerzo y horas introducir; para ello pretendo codificar la cabecera de las tablas, ya que al estar avanzado el proyecto no puedo encriptar los registros, pues sería una tarea harto laboriosa. Y mis preguntas son: ¿como puedo hacer esto? ¿y luego como las desencripto? ¿hay algun método para asignar una contraseña de acceso a la tabla? ¿puedo luego introducir esa contraseña desde código? Por favor ayudenme..., Estoy dandole vueltas pero no consigo nada. Muchas Gracias. |
Respuesta: | roberto |
Hola, mi nombre es Roberto y espero poder ayudarte. Antes que nada debes saber como se almacena un archivo .DBF y para eso hay un documento en la siguiente dirección. http://www.fpress.com/revista/Num9906/Jun99.htm Este documento trata como se almacena un dbf. Ahora que comprendes como se almacena debes implementar una rutina como la que implemente yo para lamacenar datos, solo que tu hazlo para una cadena. Esta rutina te encripta y te desencripta dependiendo de la posición de un caracter dentro de una cadena, espero y te sirva y adelante amigo. PROCEDURE EncoDeco Parameters Cadena NuevaCadena = "" &&Variable donde se almacenará la cadena Encriptada use d:\Roberto\Claves.dbf order cClave Contador = len(alltrim(Cadena)) &&Variable que contendrá la longitud de la cadena normal for i = 1 to Contador cChar = substr(alltrim(Cadena),i,1) &&substracción caracter a caracter del registro cChar = asc(cChar) &&Devuelve el codigo ansi del caracter cRango = 200 - (cChar + i) &&Se realiza la encriptación NuevaCadena = NuevaCadena + chr(cRango) &&Se almacena caracter a caracter la cadena encriptada endfor seek(alltrim(NuevaCadena)) if found() wait window "El Registro ya se encuentra....." else append blank replace cClave with alltrim(NuevaCadena)&&Reemplaza la clave con la clave ya encriptada wait window "Registro almacenado" endif return |