Ola a todos da lista, estou com um problema de criptografia com chaves que 
se modificam a cada caractere e gostaria de pedir a ajuda de voces, eu 
desconfio que o problema possa ser com o \"int\", essa rotina eu fiz 
primeiramente no Delphi e agora precisava passar para o Java sem ser alterada.
    Obrigado pela ajuda

Obs.: Os k#\'s sao constantes, ate a metade ele decodifica corretamente, depois 
se perde todo, a evolucao do resultado é a seguinte:

Delphi               Java
Senha Chave1         Senha Chave1
F     31149          F     31149
FI    1120140091     FI    1120140091
FIL   1874945386     FI   1865758314
FILO  1208914660     FI,  -2070023708

O codigo Delphi é o seguinte:

function Decrypt(const InString:string): string;
var
  I : Byte;
begin
  chave1 := (k1 + (Length(InString.Text)+k2));
  chave2 := (k3 + (Length(InString.Text)+k4));
  chave3 := (k5 + (Length(InString.Text)+k6));
  Result := \'\';
  for I := 1 to Length(InString) do
  begin
    Result := Result + CHAR(Byte(InString[I]) xor (chave1 shr 8));
    chave1 := (Byte(InString[I]) + chave1) * chave2 + chave3;
  end;
end;


E o Java:
  public String criptografia(String senha_des)
  {
    byte i;
    int chave1 = (k1 + (senha_des.length()+k2));
    int chave2 = (k3 + (senha_des.length()+k4));
    int chave3 = (k5 + (senha_des.length()+k6));
    String resultado = \"\";
    for(i=0;i<senha_des.length();i++)
    {
    resultado = resultado + (char)((byte)senha_des.charAt(i) ^ (chave1 >> 8));
    chave1 = ((byte)senha_des.charAt(i) + chave1) * chave2 + chave3;
    };
    return resultado;
  };

------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a