Página 1 de 1

encrypt() y GPF

Publicado: Sab Ene 06, 2007 3:32 pm
por pablogarciau
La sola inclusion de esta linea en mi procedimiento de arranque me
provoca GPF's al arrancar mi formulario proncipal, en otras ocasiones la
aplicacion corre pero al cerrarla me manda ventanas de error en la
lectura de ciertas direcciones de memoria "La memoria en XXXXX no se
puede READ", alguien que este utilizando esta funcion me podria comentar
si no tiene problemas, gracias.

encrypt() y GPF

Publicado: Sab Ene 06, 2007 3:33 pm
por pablogarciau
Juan Pablo Garcia escribió:
> La sola inclusion de esta linea en mi procedimiento de arranque me
> provoca GPF's al arrancar mi formulario proncipal, en otras ocasiones la
> aplicacion corre pero al cerrarla me manda ventanas de error en la
> lectura de ciertas direcciones de memoria "La memoria en XXXXX no se
> puede READ", alguien que este utilizando esta funcion me podria comentar
> si no tiene problemas, gracias.
perdon, la linea de codigo es:
cSt:=encrypt(FreadStr(nHa,nLen),"miclave")

encrypt() y GPF

Publicado: Lun Ene 08, 2007 10:42 am
por ignacio
Juan Pablo,
Comprueba primeramente que el dato que recibas vía FreadStr() es correcto.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Juan Pablo Garcia" <pablogarciau@msn.com> escribió en el mensaje
news:[email=459fb329@news.xailer.com...]459fb329@news.xailer.com...[/email]
> Juan Pablo Garcia escribió:
>> La sola inclusion de esta linea en mi procedimiento de arranque me
>> provoca GPF's al arrancar mi formulario proncipal, en otras ocasiones la
>> aplicacion corre pero al cerrarla me manda ventanas de error en la
>> lectura de ciertas direcciones de memoria "La memoria en XXXXX no se
>> puede READ", alguien que este utilizando esta funcion me podria comentar
>> si no tiene problemas, gracias.
> perdon, la linea de codigo es:
>
> cSt:=encrypt(FreadStr(nHa,nLen),"miclave")

encrypt() y GPF

Publicado: Lun Ene 08, 2007 8:28 pm
por pablogarciau
Ignacio Ortiz de Zúñiga escribió:
> Comprueba primeramente que el dato que recibas ví­a FreadStr() es correcto.
Ignacio :
Comprobado, de hecho posteriormente lo guardo en un archivo de texto,
incluso lo desencripto y lo guardo en otro archivo de texto y funciona
bien, el error de lectura de memoria me lo da al cerrar la aplicacion, y
el GPF lo da de manera eventual despues de guardar los dos archivos
mencionados y antes de abrir mi formulario principal (repito este ultimo
es eventualmente)
Saludos

encrypt() y GPF

Publicado: Mar Ene 09, 2007 10:47 am
por jfgimenez
Juan Pablo,
> Comprobado, de hecho posteriormente lo guardo en un archivo de texto,
> incluso lo desencripto y lo guardo en otro archivo de texto y funciona
> bien, el error de lectura de memoria me lo da al cerrar la aplicacion, y
> el GPF lo da de manera eventual despues de guardar los dos archivos
> mencionados y antes de abrir mi formulario principal (repito este ultimo
> es eventualmente)
Quizás el problema no esté en Encrypt() sino en el tratamiento que le estés
dando a la cadena posteriormente; ten en cuenta que la cadena encriptada
puede contener caracteres nulos, y no todas las funciones de [x]Harbour,
Xailer y/o el API de windows son capaces de tratarla.
Prueba a asignarle a la variable resultante un valor "normal" después de
encriptarla. P.ej:
cSt:=encrypt(FreadStr(nHa,nLen),"miclave")
cSt := "Cadena encriptada"
Obviamente, eso no es lo que quieres, pero puede servir para determinar si
el problema es realmente de la función Encrypt() o es de su tratamiento
posterior.
Por cierto, te aconsejo que si vas a guardar la cadena encriptada en algún
sitio la conviertas a hexadecimal usando la función StringToHex(). P.ej.:
cSt:=FreadStr(nHa,nLen)
nLen := Len( cSt )
cSt := StringToHex( encrypt(cSt,"miclave"), nLen )
De esta forma podrás guardarla en un campo de una tabla, en un .ini, en el
registro de windows o donde quieras, evitando el problema de los caracteres
nulos. Eso sí, ten en cuenta que una vez convertida a hexadecimal. la cadena
ocupa justo el doble de bytes que la cadena original.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info

encrypt() y GPF

Publicado: Mar Ene 09, 2007 10:49 am
por ignacio
Juan Pablo,
No me queda claro si el problema es de la función de encriptación. Podrías
mandarnos un pequeño ejemplo que mostrase el problema.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Juan Pablo Garcia" <pablogarciau@msn.com> escribió en el mensaje
news:[email=45a29b6c@news.xailer.com...]45a29b6c@news.xailer.com...[/email]
> Ignacio Ortiz de Zúñiga escribió:
>> Comprueba primeramente que el dato que recibas vía FreadStr() es
>> correcto.
>
> Ignacio :
>
> Comprobado, de hecho posteriormente lo guardo en un archivo de texto,
> incluso lo desencripto y lo guardo en otro archivo de texto y funciona
> bien, el error de lectura de memoria me lo da al cerrar la aplicacion, y
> el GPF lo da de manera eventual despues de guardar los dos archivos
> mencionados y antes de abrir mi formulario principal (repito este ultimo
> es eventualmente)
>
> Saludos

encrypt() y GPF

Publicado: Jue Ene 11, 2007 11:22 pm
por pablogarciau
Jose:
He seguido tu consejo de no guardar el valor encriptado sino convertirlo
a hexadecimal y el problema a dejado de presentarse, asumo que como tu
me comentaste el error se provoca por incapacidad para tratar algun
valor nulo que se estuviese generando dentro de la cadena devuelta por
el encrypt
Te agradezco tu ayuda.

encrypt() y GPF

Publicado: Jue Ene 11, 2007 11:24 pm
por pablogarciau
Ignacio Ortiz de Zúñiga escribió:
> Juan Pablo,
>
> No me queda claro si el problema es de la función de encriptación. Podrí­as
> mandarnos un pequeño ejemplo que mostrase el problema.
>
> Un saludo,
>
Te agradezco tu atencion Ignacio, he hecho una modificacion para no
utilizar el valor encriptado dentro de la variable y el problema ha
dejado de presentarse, si llegase a tener alguna dificultad mas adelante
(como ya te he mencionado el problema es erratico) preparare el ejemplo
y se los mandare
De nuevo gracias