Cyclic Redudancy Check 32

Algorithme utilisé par Up ! Security Manager

L'algorithme Cyclic Redudancy Check 32 (CRC32) de l'Internet Engineering Task Force (IETF) permet de s'assurer simplement que le contenu d'un flux n'a pas été modifié par le calcul d'une clé 32 bits. La clé est toujours exprimée en big endian.

Ce n'est pas une certification étant donné qu'au moins deux flux différents peuvent générer la même clé.

Voici l'algorithme en Up ! 5GL :

/****************************************************************/
Fonction CalculerSignatureCrc32(Flux : Nul Ou IFlux) Retourner Nul Ou Binaire
/* Objet : Calcule la signature Crc. */
/****************************************************************/
Constante
/*******/

Variable
/******/
Debut
Si Flux==Nul Alors Fin Si
/* Fabrication de la table. */
Pour I=0 JusquA TailleTableCrc32-1 Faire Fin Pour
/* Calcul de la signature. */
S=0xFFFFFFFF;
TantQue Non Flux.FinDeFlux Faire Fin TantQue
/* Generation de la signature. */
TableEntier[0]=S&0x000000FF;
TableEntier[1]=(S&0x0000FF00)>>8;
TableEntier[2]=(S&0x00FF0000)>>16;
TableEntier[3]=(S&0xFF000000)>>24;
Retourner Binaire(TableEntiers);
Fin Fonction