![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Hola,
Gracias Casimiro. Que se "pierden" caracteres es evidente... aunque, ojo, sólo a la hora de guardar (o mostrarla en un "MessageBox", un "TMemo", etc.) la cadena cifrada: puesto que usando la variable que la contiene nosotros podemos descifrarla sin problemas. Ahora bien, he probado a convertir la cadena a "base 64" y el problema parece persistir. ¿Por qué digo parece? Porque he estado tan liado con esto que ahora mismo no sé si hice bien la prueba con "base 64". Mañana lo intentaré de nuevo. Sin embargo ahora mismo juraría que no es solución: que dichos caracteres se pierden también al tratar de convertir la cadena cifrada a "base 64", es decir, "faltan" cuando se decodifica la cadena (desde "base 64") y trata uno de descifrarla. De todas formas, tal vez exista algún otro tipo de codificación posible en lugar de "base 64". Me explico. El debugger de Delphi me muestra el contenido de la cadena cifrada, pero, no reconozco dicho contenido como el que se guarda al cifrar un archivo (usando la misma clase) o una cadena, es decir, ¿podría Delphi estar codificando dicha cadena para mostrarla en el debugger? ¿Y qué codificación usaría? Ahora bien, esto tal vez no sirva de nada... pues seguramente Delphi no usará el contenido de la cadena que me muestra a mí en el debugger... sino que usará la propia variable que contenga la cadena cifrada. Espero que se entienda lo que quiero decir. Pero sí... tal vez se trata de codificar dicha cadena cifrada de forma que no se pierdan los caracteres... Gracias de nuevo Casimiro. Se agradece cualquier tipo de ayuda con este asunto, porque, en efecto, tengo que "presentar" alguna solución. ![]() Última edición por dec fecha: 01-06-2014 a las 23:04:25. |
|
#2
|
||||
|
||||
|
Hola de nuevo,
Curiosamente, aquí se describe exactamente (si no me equivoco) el problema que tengo. Y la solución propuesta pasa por codificar en "base 64" la cadena cifrada... ¿lo habré hecho yo entonces mal en mis anteriores pruebas? Mañana volveré a comprobarlo y veremos. Por favor recordad que cualquier tipo de ayuda sigue siendo bienvenida. Última edición por dec fecha: 01-06-2014 a las 23:52:27. |
|
#3
|
||||
|
||||
|
Hola,
Tal vez esta tarde he metido la pata al probar codificando la cadena cifrada en "base 64": he probado de nuevo y he podido comprobar que, en efecto, codificar la cadena cifrada tal vez sea una solución. No sé si lo será para mi problema en concreto, puesto que no puedo probarlo todavía en el programa en cuestión, pero, en un programa de prueba que estoy haciendo aquí, en efecto, algo así funciona como se espera:
Como puede verse estamos guardando la cadena cifrada en el "TMemo", no obstante, lo hacemos codificándola en "base 64". Pues bien, después de descodificarla de nuevo podemos descifrarla obteniendo como resultado la cadena original. Mañana comentaré si al final consigo que esto también funcione donde lo necesito. P.D. Gracias Casimiro por hacerme mirar esto más despacio. ![]() Última edición por dec fecha: 02-06-2014 a las 01:18:21. |
|
#4
|
||||
|
||||
|
Ya sabes, "vísteme despacio que tengo prisa"
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#5
|
||||
|
||||
|
Hola,
Es verdad Casimiro. Y, sin embargo... el problema no se ha solucionado. No sé porqué, el programa de pruebas en Delphi 2007 bajo Windows 7, produce los resultados esperados. Sin embargo, este mismo programa en Delphi 2007 bajo Windows 8... no produce los resultados que esperamos. Parece algo relacionado con la codificación y decodificación en "base 64". Creía haber dado con la solución y ahora me encuentro con un problema caso más raro... ![]() |
|
#6
|
||||
|
||||
|
Eso no tiene mucha lógica, code64 no puede variar (no debería) si usas win7 o win8
![]() ¿No habrá algo más que sea diferente entre ambos equipos?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#7
|
||||
|
||||
|
Hola,
Gracias Casimiro. Ahora mismo acabo de probar un ejecutable compilado en Delphi 2007 en Windows 7 y funciona como se espera también en Windows 8. Sin embargo, si compilo el código que produce dicho ejecutable en Delphi 2007 bajo Windows 8 el resultado no es el esperado. Algo falla. Lo único que se me ocurre ahora mismo es que la versión de los componentes Indy (usados para codificar/decodificar) es distinta, puesto que en Windows 7 uso la que viene instalada en Delphi 2007, y, casi estoy seguro, aquí en Windows 8, tengo instalada la última versión de Indy. Pareciera en efecto que se trata de un problema en la codificación/decodificación, así que voy a intentar (también vaya día tengo hoy...) usar otros componentes para codificar/decodificar, aquí mismo en el ClubDelphi se han compartido algunas funciones para hacerlo. Claro que como tú dices, Casimiro, a mí también me extraña mucho que la codificación/decodificación no coincida entre diferentes versiones de Indy. Y, por otro lado, si esto fuese así, resultaría que el problema está en la última versión de los componentes... Madre mía... |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Recuperar BookMark despues de cerrar dataset... | verito_83mdq | Varios | 10 | 27-01-2011 00:03:18 |
| Recuperar Informacion despues de un Commit | Kipow | Firebird e Interbase | 2 | 01-04-2009 19:04:02 |
| Error al Tratar de Almacenar Cadena con Acepto | inferno | Firebird e Interbase | 3 | 04-10-2006 17:17:40 |
| Recuperar autoinc. después de Insert to | aig | MS SQL Server | 2 | 22-09-2004 10:41:28 |
| Recuperar autonumericos despues de Borrar, Cancelar ,Ect. | IcebergDelphi | Varios | 1 | 14-05-2003 07:55:02 |
|