Calculo do CRC32

1 resposta
R

Eu preciso calcular um CRC32 para a seguinte informacao de bytes:

00 B0 11 7F E0 C1 00 00 00 00 E0 10 04 00 E0 A1

E ja sei que o CRC32 tem que ser F6B7EA5E. Eu calculei utilizando um software que eu encontrei na net.

Porem, eu preciso fazer uma rotina em java, que calcule pra mim o CRC32.

Eu fiz uma rotina, porem nao esta dando certo.

segue abaixo:

public class TesteCRC extends CRC32 {

public static void main(String[] args) throws Exception {

CRC32 crc = new CRC32(); 

         String helloWorld = "00 B0 11 7F E0 C1 00 00 00 00 E0 10 04 00 E0 A1";

         crc.reset(); 
         
         crc.update (helloWorld.getBytes ("ISO-8859-1"));

         System.out.println (Long.toHexString (crc.getValue()).toUpperCase()); 
         }

}

Alguem poderia me ajudar?

grato

1 Resposta

T

Obviamente você está passando os dados errados para o CRC32. A conversão que você tentou fazer não funciona desse jeito.

Você deveria ter feito o seguinte:

byte[] helloWorld = new byte[]{
(byte) 0x00, (byte) 0xB0, (byte)0x11, (byte)0x7F,
(byte) 0xE0, (byte) 0xC1, (byte)0x00, (byte)0x00,
(byte) 0x00, (byte) 0x00, (byte)0xE0, (byte)0x10,
(byte) 0x04, (byte) 0x00, (byte) 0xE0, (byte) 0xA1
}

Se precisa converter uma string com representação hexadecimal para bytes, você precisa fazer sua própria rotina.

Criado 10 de julho de 2008
Ultima resposta 14 de jul. de 2008
Respostas 1
Participantes 2