Bonjour à tous et à toutes ,


Je cherche a comprendre le fonctionnement du checksum quand je calcul mon fichier.bin et ceci avec un logiciel éxterne dont voici l'évolution du checksum a chaque chnagement fait par l'utilisateur .





Je vais faire quelques exemples pour comprendre ce checksum :

le checksum actuel : 31 22 05 70 89 02 20 7E

Checksum calculé : 81 0C CA 8C FE 2A 38 7B


On va changer juste le premier OCTET de la chaine et on va voir le changement du premier OCTET .


On va incrémenter d'un BYTE la premiére chaine pour voir le chnagement des BYTES dans la 2 éme chaine :


41 22 05 70 89 02 20 7E

Résultat aprés incrémentation d'un Byte Gauche dans la 2 éme chaine :


F1 0C CA 8C FE 2A 38 7B



51 22 05 70 89 02 20 7E
Résultat aprés incrémentation d'un Byte de gauche dans la 2 éme chaine :

E1 0C CA 8C FE 2A 38 7B


On monte toujours d'un Byte de gauche c'est à dire de 51 a 61


61 22 05 70 89 02 20 7E
D1 0C CA 8C FE 2A 38 7B


Plus on ajoute un byte on remarquera que y'a une décrementation .

Premier Octet CRC 1 : 61
Premier Octet CRC 2 Calculé : D1


Premier Octet CRC 71
Premier Octet CRC 2 Calculé : C1


Dés qu'on arrive au 8 l'algo fais l'inverse c'est ç dire décremente i-- ;

Premier Octet CRC : 81
Premier Octet CRC 2 Calculé : 31


Premier Octet CRC : 91
Premier Octet CRC 2 Calculé : 21



Pour le Byte de Droite c'est simple plus on ajoute un byte plus il sera ajoutée à la deuxiéme chaine CRC genérer c'est à dire si on ajoutes +1 on a +1 .


CRC 1 : 32 22 05 70 89 02 20 7E

Résultat CRC 2 Calculé : 82 0C CA 8C FE 2A 38 7B


CRC 1 : 33 22 05 70 89 02 20 7E
Résultat CRC 2 Calculé : 83 0C CA 8C FE 2A 38 7B


CRC 1 : 34 22 05 70 89 02 20 7E
Résultat CRC 2 Calculé : 85 0C CA 8C FE 2A 38 7B




CRC 1 : 37 22 05 70 89 02 20 7E
Résultat CRC 2 Calculé : 87 0C CA 8C FE 2A 38 7B


Et ainsi de suite .


Le Byte de GAUCHE et incrémenter d'un BYTE i ++
Le Byte de DROITE et décrémenter d'un BYTE i --





Fred .














C'est les premiers TESTS éffectués sur ce type de Checksum .