Crc

10 respostas
marcos.junqueira

Alguém conhece alguma biblioteca que faz calculos de erros com CRC?

até mais!

10 Respostas

plentz

java.util.zip?

marcos.junqueira

bom… vou dar uma olhada, mas ela é somente pra zip? ou qualquer coisa que eu precise calcular CRC?

T

Para qualquer coisa.

T

Veja que pode ser usado para qualquer coisa, embora esteja no pacote java.util.zip.

Vou dar um exemplo com a seguinte seqüência de bytes:

0000    48 65 6C 6C 6F 2C 77 6F  72 6C 64 0D 0A            Hello,world..
import java.util.zip.CRC32;

class TesteCRC32 {
    public static void main(String[] args) throws Exception {
        CRC32 crc = new CRC32();
        String helloWorld = "Hello,world\r\n";
        crc.reset();
        crc.update (helloWorld.getBytes ("ISO-8859-1"));
        System.out.println (Long.toHexString (crc.getValue()));
        // deve imprimir "dc379aa0"
    }
}

(Porque usei essa seqüência de bytes ? É que gerei um arquivo exatamente com esse conteúdo, usando o comando “echo hello,world>teste.bin”, para checar independentemente com um programa em C que eu tenho e com o utilitário zip, que também calcula o CRC32. Ele deu mesmo esse valor, DC379AA0, para todos os métodos - o programa Java, o utilitário zip e o programa em C.)

marcos.junqueira

e tem como eu mudar o polinomio do CRC?

marcos.junqueira

tipo, eu queria usar esse polinômio aqui: x^5 +x^3 +1

marcos.junqueira

ou seja se eu usar o metodo updade(byte[] b), e colocando esse polinomio que eu quero em um vetor de bytes, funciona?

T

Como o polinômio é fixo (não lembro direito qual é o do CRC-32), você teria de usar alguma outra implementação. Mas não é difícil escrever uma implementação do CRC com outros polinômios.

T

Como de costume, nada como procurar no Google com as palavras:

JAVA CRC

Um resultado legal foi este:

http://mindprod.com/jgloss/crc.html

marcos.junqueira

ah… legal, vou dar uma olhada!!! vlw!!

Criado 1 de julho de 2005
Ultima resposta 1 de jul. de 2005
Respostas 10
Participantes 3