| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/08/2005 19:06:32
|
cezarsg
JavaChild
Membro desde: 28/04/2003 09:57:38
Mensagens: 129
Localização: curitiba
Offline
|
Pessoal,
preciso da ajuda com um arquivo xml, onde o usuário deve colocar uma senha criptografada, desta forma:
O problema é que na hora de eu ler o arquivo, o programa gera exceção por causa do ''. Tem alguma forma de ler o XML mesmo com este símbolo ??
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/08/2005 19:22:16
|
fmeyer
Moderador
Membro desde: 22/02/2005 17:26:29
Mensagens: 1583
Localização: Sao Paulo
Offline
|
voce pode converter para UTF-8 antes de colocar no xml
|
Fernando Meyer http://fernandomeyer.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/08/2005 09:45:20
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Como os caracteres em senhas criptografadas podem ir do byte 00 até o byte FF (incluindo a aspa dupla ", byte 0x22, e a aspa simples ou plica ', byte 0x27) não há encoding que dê jeito. Sempre você vai ter algum problema.
O correto é codificar essa criptografia usando hexadecimal ou base-64.
Nunca deixe os bytes "expostos" assim em arquivos texto que você vai ter muitos problemas. Quando falo muitos, são muitos mesmo.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/08/2005 22:37:12
|
cezarsg
JavaChild
Membro desde: 28/04/2003 09:57:38
Mensagens: 129
Localização: curitiba
Offline
|
Thingol, então eu devo aplicar outra conversão sobre esta criptografia antes de inseri-lá no XML ??
Oque vc quis dizer sobre bytes expostos e seus problemas ??
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/08/2005 11:09:21
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Bom, como você disse que a senha é criptografada, o algoritmo que você usa (não importa qual) deve gerar uma seqüência de bytes aparentemente aleatória e cada byte (de 00 a FF) tem probabilidade igual de ocorrer.
O problema é que caracteres como aspa """ ou apóstrofo "'" podem aparecer também - eles têm o mesmo direito à existência que o caracter "a" ou "ç".
Então você teria um XML mal-formado de qualquer maneira - não importando o encoding que você usasse.
Mesmo você usando algo que substituísse """ por " ou "'" por ' não resolveria o seu problema.
Portanto é melhor evitar o seu problema codificando todos os bytes em hexadecimal. Por exemplo, "A" ficaria "41" e "ç" ficaria "E7". É um pouco desajeitado porque você precisa ter uma rotina para converter e outra para desconverter, mas não é difícil escrever uma rotina dessas. Só tomar um pouco de cuidado com os bytes de 00 a 0F - não esquecer de pôr o zero à esquerda, senão você não saberia se você tem um caracter só (A = 41 ) ou dois (o byte 4 e o byte 1).
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/08/2005 19:03:25
|
Giuliano Mega
JavaBaby
Membro desde: 22/08/2005 19:01:35
Mensagens: 94
Offline
|
Você pode alterar a estrutura desse XML? Me parece que um bloco CDATA seria mais adequado prá especificar esse atributo.
Abraços,
Giuliano
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/08/2005 19:05:45
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Um CDATA também não resolve - como a senha é aleatória, pode aparecer a seqüência de bytes "]]>" que termina um CDATA.
(A probabilidade é de 1/256 * 1/256 * 1/256, ou seja, 0,0000059604644775390625 %, mas não é zero.)
This message was edited 1 time. Last update was at 22/08/2005 19:10:26
|
|
|
 |
|
|