PDA

Ver la Versión Completa : Password con Paradox


_Willa
20-07-2004, 20:07:56
Buenas,

He creado una bd de tipo paradox desde el prog. database desktop
al cual le he introducido una password "password security"

Me gustaria saber cual es la mejor forma o mejor... cual es la
forma correcta de abrir una bd paradox con password desde
dentro de un programa propio.
Independientemente de q sea facil la forma de reventar este tipo de bd.

He probado ha hacerlo asi:

TTable *db;
db = new TTable(NULL);

db->Exclusive = true;
db->TableType = ttParadox;
db->DatabaseName ="c:\Datos";
db->TableName = "Usuarios.db";
Session->AddPassword("master");
...
...
Session->RemovePassword("master");
delete db;

Funciona, pero no se si es la mejor forma de hacerlo.
Por cierto he leido por el foro varios mensajes de este tipo, pero
no he llegado a ninguna conclusion.

Inclusive no se a que se refiere uno, con poder saltar la clave
ya q lo he mirado el fichero desde un editor .hex y todo esta
encryptado, quizas se pueda saber sabiendo el comportamiento
del algoritmo de compresión al usar clave; si alguien tiene alguna
info sobre como saltar los ficheros paradox con clave, agradeceria
me lo indicaran.

Gracias, por todo.
Salu2 :rolleyes:
_Willa

marcoszorrilla
20-07-2004, 21:29:27
El problema en sí es que existen dos Claves maestras para acceder a las tablas Paradox, via código o DabaseDesktop, por lo tanto por mucho que nos esmeremos en la clave y por muy encriptada que esté, el problema no es éste sino lo citado anteriormente, que quien conozca estas dos claves abrirá nuestras tablas sin tener que saber nuestra clave para ello.

jIGGAe
cupcdvum
|
|
|
Blanche ou l'oubli.

Un Saludo

_Willa
21-07-2004, 11:32:16
Me pregunto cuales son esas claves maestras, para acceder a las tablas Paradox ... Las sabes tu?, y si no, sabes donde puedo encontrar
esa información.

Por otra parte, dichas claves deben estan definidas o en el propio motor de
la bd o formadas dentro del fichero, si es este ultimo se podrian cambiar
sin problemas.

Saludos
_Willa

_Willa
21-07-2004, 13:56:34
Bueno...

He estado buscando y he encontrado una buena información sobre
las tablas paradox.

La podeis encontrar en:
http://www.rksolution.cz/Delphi/px3p.rtf

Salu2
_Willa

marcoszorrilla
21-07-2004, 15:08:20
Las claves te las he puesto, justo encima de donde dice "Blanche ou l'oubli", famosa obra de Louis Aragon.

Claro lo he puesto en color blanco por eso no las ves.

Pulsa botón izquierdo del raton y selecciona ese area y verás las claves.

Un Saludo.

_Willa
21-07-2004, 16:23:25
Ahhhh ... si ;)

No me habia fijado en ese pequeño detalle.

Por cierto, si alguien quiere detallar más, puede buscar:

...open a password-saved paradox database without knowing the
password ?

... y encontrará algo mas de detalle sobre password.

Por Ultimo, no se si tu has llegado ha hacer pruebas con password
con paradox, lo digo por lo siguiente:

En una aplicación donde se mezclan tablas con/sin password,
cual seria la forma de tratarlas, es decir pondria al inicio el
Session->AddPassword("master"); y valdria tanto para las tablas
con/ sin password o si pongo esto afectaria a las tablas q no
tengan password
... o por el contrario pongo esto de Session->AddPassword("master");
solo en el bloque donde abra la tabla con password y luego al finalizar
el bloque poner un Session->RemovePassword("master");

Me preocupación es al usar tablas con password puedan afectar de
alguna forma a las tablas que no lo usen.

¿ Cual es la mejor forma de tratar todo esto ? ¿ Alguna Idea ?

Gracias x Todo.
Saludos
_Willa

Pablo Carlos
22-07-2004, 00:36:55
:cool: Concretito y al grano
¿Como abrir una una tabla paradox que tiene password?
Con el DataBaseDesktop y usando la clave:
cupcdvum
Con la password maestra de Paradox:
jIGGAe
y muy creativo lo tuyo...el de poner en blanco la clave :eek:
Saludos Pablo

Lepe
22-07-2004, 10:36:36
_Willa, si tienes tablas sin password y otras con elllas, simplemente haz como si todas tuviesen password, no pasa nada, además así ya lo tienes preparado por si más adelante tienes que ponerles claves.

Si al abrir una tabla, ésta tiene clave, pedirá el evento del Session OnPassword (que mejor sitio que aquí para añadir la contraseña si no se ha hecho ya, y dejar que todo continue ;)) eso si, poniendo LoginPrompt a false de la tabla.

Si la tabla no tiene clave, simplemente no pedirá el evento OnPassword y seguriá adelante.

Saludos

_Willa
22-07-2004, 12:40:35
Gracias _Lepe,

He realizado lo que me has indicado, pero lo de ....
"poniendo LoginPrompt a false de la tabla." no me cuadra, querras
decir ponerlo a true, si es lo que creo y sino como se usa
el LoginPrompt.

¿ Te refieres q es el parametro del evento onpassword ?


Por cierto he encontrado en la Ayuda de Builder en el apartado:

DevGuide: Developing database applications
Working with password-protected Paradox and dBASE tables

Se puede llegar aqui tecleando OnPassword, y dando F1
despues seleccionar "See Also" y por ultimo ...
Working with password-protected Paradox and dBASE tables

Gracias por Todo
Saludos
_Willa

Lepe
23-07-2004, 11:06:15
aro, aro.... imposible que te cuadre, el LoginPrompt es una propiedad del TDatabase, no de la tabla. Y sí, has de ponerlo en valor falso. De esta forma el usuario no recibirá un cartelito diciendole : introduzca nombre de usuario y password para continuar.(este mensaje saldría por cada tabla que tuviese password al intentar abrirla !!!)

Si loginPrompt está a falso, y la tabla tiene password, el usuario no verá el cartel, pero tampoco se abrirá con éxito.

Hasta ahora he supuesto que no has añadido contraseñas al Session con AddPassword. Si la añades así :

procedure TDTM.MiSessionPassword(Sender: TObject; var Continue: Boolean);
begin
{ DONE -cMOTOR BD : Contraseñas para tablas }
MiSession.AddPassword('cuñaaaaaaaaoooooo');
Continue:= true;
end;


Si la contraseña no es la correcta:
- LoginPrompt a falso ==> no se puede abrir la tabla, error al intentar acceder a ella
- LoginPrompt a true ==> mostrará la ventana para loguear.

Contrasña correcta:
- no importa LoginPrompt. Las tablas se abren.

Espero que no te haya liado más :), como mejor se vé es haciendo pruebas.

Saludos