2013-06-25 1 views
0

Я могу вычислить значения CRC32 строк .ZIP/.PNG, но не связанных с Ethernet. Класс Java CRC32, по-видимому, позволяет использовать один тип вычислений.Расчет CRC32 (Ethernet) по сравнению с ZIP/.PNG в Java?

String str = textField.getText(); 
    Checksum checksum = new CRC32(); 
    byte bytes[] = null; 

    try { 
     bytes = str.getBytes("ASCII"); 
    } catch (UnsupportedEncodingException ex) { 
     Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex); 
    } 

    checksum.update(bytes, 0, bytes.length); 
    long lngChecksum = checksum.getValue(); 
    crc32bField.setText(Long.toHexString(lngChecksum)); 

Это код, который я написал, чтобы вычислить мой CRC, может кто-нибудь помочь мне достичь те же значения, вычисленного на этом сайте?

http://hash.online-convert.com/crc32-generator

Подобно тому, как, например,

"привет мир" =

7813f744 (сайт)

D4A1185 (мой код)

Спасибо :)

+0

Mmm ... это дает мне десятичное значение, мне нужно значение CRC в HEX –

+0

@Junaid Почему? Его контрольный CRC находится в шестнадцатеричном виде. Ваше предложение дает десятичное значение. В чем ваш смысл? – EJP

+0

@Junaid Вы всегда можете удалить его. – EJP

ответ

0

Кажется, что алгоритм, используемый в веб-сайт, который вы предоставили, это CRC32, тогда как тот, который вы используете, является CRC32B. Оба они представляют собой совершенно разные алгоритмы, поэтому вы получаете разные значения.

Вы пытаетесь выполнить алгоритм CRC32B от того же website. Он находится в строке с тем, что дает вам класс Checksum.

 Смежные вопросы

  • Нет связанных вопросов^_^