Avatar billede svj Nybegynder
02. oktober 2005 - 15:02 Der er 6 kommentarer

CRC reverse enginnering - hvem kan finde algoritmen

Givet 3 dataserier med tilhørende CRC:

1) 55 0C 00 20 00 01 15 00 00 00 00 00 00 00 01 01 00 00 (CRC=71)    
2) 55 09 00 53 00 01 00 00 00 00 00 00 01 00 01 (CRC=9C)    
3) 55 0A 00 46 00 01 00 00 00 00 00 00 00 00 00 00 (CRC=02)    
Er der nogen der kan gennemskue hvilken algoritme der benyttes?
Avatar billede erikjacobsen Ekspert
02. oktober 2005 - 16:35 #1
Det er kun et gæt, men det kunne da være CCITT-8 (X^8 + X^5 + X^4 + 1)
Avatar billede arne_v Ekspert
02. oktober 2005 - 19:29 #2
sum8 : no
xor8 : no
crc8 : no
ccitt8 : no

:-(
Avatar billede nielle Nybegynder
10. oktober 2005 - 15:06 #3
Avatar billede arne_v Ekspert
10. oktober 2005 - 15:12 #4
lyder som en opgave der er stillet før

men medmindre det netop er en kendt algoritme, så er der jo uendeligt mange løsninger
Avatar billede jpvj Nybegynder
10. oktober 2005 - 15:18 #5
arne_v> Mon ikke de to (spørger og linket til java) går på samme hold? :-)

svj> Hvilke CRC algoritmer har I gennemgået indtil nu?
Avatar billede svj Nybegynder
11. oktober 2005 - 21:21 #6
Hello,

Jeg fandt selv svaret. Beklager hvis i har brugt for megen tid. Og der var os' mig der stillede spørgsmålet i javaforum. For de interesserede var kernen i løsningen en startværdi val=0xC7 og herefter val ^=byte(n). På Java'sk:

byte calculateCRC(byte[] in, int len) {
        int i, j;
        byte out = (byte) 0xC7;// bit-swapped 0xE3;

        for (j = 0; j < len; j++) {
            out = (byte) (out ^ (in[j] & 0xFF));
            for (i = 0; i < 8; i++) {
                if ((out & 0x80) != 0)
                    out = (byte) ((out << 1) ^ 0x1D);
                else
                    out = (byte) (out << 1);
            }
        }
        return out;
    }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester