Checksum [Résolu]

Signaler
Messages postés
75
Date d'inscription
jeudi 27 janvier 2005
Statut
Membre
Dernière intervention
17 octobre 2008
-
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
-
Bonjour,
je voudrais réaliser ( en stict C ) un checksum sur une trame defini en byte[] composé de 11octets ( 1o pour le STH, 1o pour @dest, 1o pr @src, 8o pr la donnée qui est un double )+ le checksum. Je ne sais pas comment m'y prendre.
ps: quelle est la difference avec un CRC.

Merci.

1 réponse

Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
un Checksum, un CRC, un bit de parité... tout ça sert à rajouter une information à tes données permettant de savoir si elle ont été corrompus lors du transfert. La diférence réside dans la manière de combiner les octets initiaux pour calculer l'information suppléméntaire ainsi que dans la taille de cette information.

En gros c'est une fonction qui prend un paramètre un tableau de BYTE, une taille et sort un nombre (ou un autre tableau de BYTE).

voici un exemple de chaecksum qui fait un xor sur tout les octets ave une valeur initiale de 0 :

BYTE CalcChecksum(BYTE* buffer, int length)
{
BYTE cs = 0;
for(int i=0; i < length; i++)
cs = cs ^ buffer[i];
return cs;
}

Maintenant, il y a plusieurs variantes de calcul, mais en général basées sur une boucle des octets d'entrée.