Ocultando clave

Señor miguelcortez, he creado una aplicación en visual foxpro 6.0, esta trabaja con varias tablas (es un sistema de control de notas), bueno mire, para tener acceso a este programa, he puesto que el usuario debe ingresar una clave, pero como el usuario debe tener la facultad de poder cambiar la clave a su gusto, la guarde en una tabla, o sea tengo una tabla en donde se guarda la clave del usuario, pero ahí viene el problema, ¿cómo puedo hacer para que nadie tenga acceso a esa tabla? O sea si alguien con conocimientos mínimos de visual foxpro entra en el sistema, puede pues tranquilamente copiar la tabla llevarse a otra maquina y ver la clave y eso no debería pasar.
Quisiera saber si existe alguna forma de "ocultar" la tabla, o al menos el campo donde se almacena la clave, para que así nadie pueda acceder a la información del sistema.
Gracias por todo.
Atentamente.
Lucho2000

2 Respuestas

Respuesta
1
Tenés dos posibilidades
1) Grabar la clave en forma encriptada, por ejemplo si la clave es "casa" se graba la clave con una serie de códigos que equivales a los caracteres correspondientes por ej "x0#1!02)" hay rutinas muy buenas que te hacen este trabajo las cuales no tengo a mano ninguna pero la podes conseguir sin ningún problema, pero el inconveniente es que cualquiera la puede abrir y hacer manchanco
2) Hacer una tabla en access el cual te permite poner una clave antes de abrirla y creando una vista desde visual mediante ADO podes acceder a la tabla vos y sólo vos.
Suerte
Miguel
Señor experto, pudiera indicarme en donde conseguir esas rutinas o al menos el nombre de una ellas
Gracias por todo.
Te mando la rutina pedida. Con un ejemplo
wait window 'Esto es una prueba de encriptación de datos. Se encripta y desencripta miguel' nowait
usuario =encripta('miguel')
wait window 'Este es el código de miguel encriptado ' +usuario
wait window 'Este es el código de miguel desencriptado ' +encripta(usuario)
FUNCTION ENCRIPTA
*-*-*-*-*-*-*-*-*-*-*-*
PARAMETER detalle
PRIVATE regresa, I
regresa=""
FOR I=1 TO LEN(detalle)
IF ASC(SUBSTR(detalle,I,1))=10 .OR. ASC(SUBSTR(detalle,I,1))=13 .OR. ASC(SUBSTR(detalle,I,1))=32 .OR. ASC(SUBSTR(detalle,I,1))=27
REGRESA=REGRESA+SUBSTR(detalle,I,1)
ELSE
REGRESA=REGRESA+CHR(ASC(SUBSTR(detalle,I,1))+IIF(ASC(SUBSTR(detalle,I,1))/2=INT(ASC(SUBSTR(detalle,I,1))/2),+5,-5))
ENDIF
NEXT I
RETURN regresa
No soy experto. Mi nombre es Miguel Angel y sólo sé un poco más que algunos y mucho menos que casi todos.
Respuesta
1
Bueno para empezar no es posible poner una seguridad a la tabla ya que visual foxpro carece de esas ventajas.
Pero puedes mantener el proceso tal como esta y agregarle que al guardar la clave la convierta con sys(2007) pero no podrás revertir esto más que solo comprobarlo cuando te digiten la clave, eso te da un poco de incomodidad ya que para comparar la clave debes convertir siempre la clave digitada para compararla con la guardada en la tabla pero mi modo.
Adicional a esto puedes cambiarle la extensión a la tabla en lugar de DBF ponerle por ejemplo 3 iniciales de tu nombre o cualquier valor de 3 letras y cuando necesites así no podrán abrir con facilidad la tabla, para abrirla solo tiene que ponerle el nombre y la extensión ej:
USE tabla. Abc suponiendo que la extensión es "abc", si la tabla esta contenida en una DBC pues debes probar si no te da problemas hacer esto...
La idea es que tu debes de cambiar la clave con alguna artimaña y guardala así, puedes hacer una función que te convierta en valores raros un dato carácter y así encriptar tu mismo la clave...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas