De Delphi para Java - Enroscos na codificação  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
Claire
JavaChild
[Avatar]

Membro desde: 17/11/2003 15:16:20
Mensagens: 110
Localização: Sumaré-SP
Offline

Olá Pessoal,
To com o seguinte problema: Tenho que fazer uma aplicação que rode exatamente (ao menos nesse ponto) igual a que tenho em Delphi. Estou com dificuldade pra conseguir passar para o Java, principalmente na parte que ele usa ascII. Sei que Java não usa ascII.
Será que alguém pode me ajudar? A função é a seguinte no Delphi:

function STR_CODIFICA(P_SEQ: string): string;
var
L_RET: string;
L_I, L_TAM: integer;
begin
L_RET := '';
L_TAM := length(P_SEQ);

for L_I := 1 to L_TAM do
L_RET := L_RET + chr((ord(P_SEQ[L_I]) + L_TAM) mod 256);

STR_CODIFICA := L_RET;
end;

Pra quem não sabe:
ord :recupera valor ascII de determinado caracter
mod: recupera o resto da divisão (%)

"Se não puder convencê-los, confunda-os"
luciano_castilho
JavaChild
[Avatar]

Membro desde: 17/03/2003 10:10:48
Mensagens: 138
Localização: Campo Grande / MS
Offline

Oi Claire,

Estou bem enferrujado em Delphi mas tentei fazer algo parecido, juro para vc que não testei portanto veja se funciona ou se dá para aproveitar algo desse cód, OK.


Luciano de A. Castilho
---------------------------
"O poder de uma civilização não está em promover a guerra, mas em manter a paz" (Gene Roddenberry)
[MSN]
Claire
JavaChild
[Avatar]

Membro desde: 17/11/2003 15:16:20
Mensagens: 110
Localização: Sumaré-SP
Offline

Eu tava mais ou menos no mesmo caminho...
Só duas coisas:

Uma delas é que vc esqueceu de somar o tamanho da ArrayList. Ahe ficou certinho..

Porém, faltou uma coisa:

Voltar o valor pra String. Exemplo:
Se eu coloco A , equivale a 65 ascII. Pois bem, após passar todo o processo ele retorna 66. Como eu faço pra que volte pra caracter?...Que o certo seria retornar B.
Só falta isso mesmo pra que esteja zerado.

Valeu mesmo pela ajuda!

"Se não puder convencê-los, confunda-os"
urubatan
Moderador
[Avatar]

Membro desde: 21/09/2002 10:31:26
Mensagens: 2481
Localização: Porto Alegre/RS
Offline

bom, eu não testei, mas é possivel que isto funcione:

[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
[WWW]
Claire
JavaChild
[Avatar]

Membro desde: 17/11/2003 15:16:20
Mensagens: 110
Localização: Sumaré-SP
Offline

Era só converter pra char mesmo...
Deu certo!

Exceto pelo fato que invés de somar i tenha que somar o arrayCharSeq.length...


Obrigada Pessoal

"Se não puder convencê-los, confunda-os"
luciano_castilho
JavaChild
[Avatar]

Membro desde: 17/03/2003 10:10:48
Mensagens: 138
Localização: Campo Grande / MS
Offline

Claire,

Curiosidade minha, para que serve esta rotina? Qual o tipo de uso, por exemplo extrair uma "assinatura" de uma String, ou até mesmo um modo de criptografia?

Luciano de A. Castilho
---------------------------
"O poder de uma civilização não está em promover a guerra, mas em manter a paz" (Gene Roddenberry)
[MSN]
Claire
JavaChild
[Avatar]

Membro desde: 17/11/2003 15:16:20
Mensagens: 110
Localização: Sumaré-SP
Offline

É... Criptografia sim...
Apesar que tenho uma classe ótima pra isso... Tenho que fazer igual a do Delphi, as aplicações vão rodar em paralelo.

"Se não puder convencê-los, confunda-os"
Daniel Quirino Oliveira
Moderador
[Avatar]

Membro desde: 23/03/2003 23:57:34
Mensagens: 3299
Localização: Awawawawa (Araraquara) - SP
Offline

Mera curiosidade: por que ambas aplicações não utilizam um mesmo algoritmo de criptografia já consagrado (tipo BlowFish ou 3DES)?

Daniel Quirino Oliveira
[Email] [WWW]
dsiviotti
Virtual Machine Man
[Avatar]

Membro desde: 19/01/2004 01:35:23
Mensagens: 541
Localização: Rio de Janeiro
Offline

Daniel Quirino Oliveira wrote:Mera curiosidade: por que ambas aplicações não utilizam um mesmo algoritmo de criptografia já consagrado (tipo BlowFish ou 3DES)?


Nada como criptografia caseira.

Também uso coisas assim pra gravar a senha de alguém no banco. Mesmo o DBA não sabe a senha e não precisa ser um super algoritmo de criptografia. Na verdade essa "criptografia de caracteres" é super simples.

Douglas Siviotti
[Email] [WWW] [Yahoo!] [ICQ]
Claire
JavaChild
[Avatar]

Membro desde: 17/11/2003 15:16:20
Mensagens: 110
Localização: Sumaré-SP
Offline

A maioria das aplicações em Java aqui roda criptografia com o algorítmo de Rijndael.
Realmente esta criptografia é caseira... Mas, como já está assim na aplicação Delphi a algum tempo e rodando em cliente. Achei mais sensato fazer da mesma maneira em aplicação Java ao invés de alterar a aplicação Delphi e as senhas já existentes em banco.
Esse tipo de criptografia pode ser caseira, mas já resolve o problema.

"Se não puder convencê-los, confunda-os"
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team