Checksum

Résolu
sdisp Messages postés 75 Date d'inscription jeudi 27 janvier 2005 Statut Membre Dernière intervention 17 octobre 2008 - 27 janv. 2005 à 16:33
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 - 27 janv. 2005 à 17:52
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

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
27 janv. 2005 à 17:52
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.
3
Rejoignez-nous