Aller au contenu

Algo de CRC


Dude76

Messages recommandés

Glop glop tous :D

Dans mon boulot, on se balance des mdb à travers le réseau (ô qu'c'est drôle :D ), et on veut être sûr qu'elles n'ont pas été modifiées entre 2 (altération bien sûr, mais aussi manipulation par tiers :zzz ). Ces mdb sont sécurisées par mot de passe (heu ... :oups ok, c'est juste par principe :sorry ).

Jusque là, nous utilisions un algo qui appartient à une dll de windows pour calculer un checksum sur la mdb; Pour que la mdb soit acceptée, il faut que le checksum soit vérifié.

On est passé sur un plateforme nettement plus chargées en terme de flux, mais bien moindre en terme de puissance (bi-Xeon -> PIV 3GHz :devil ), ce qui a permis de manifester nombre de problèmes, essentiellement liés aux calculs de checksum (il semblerait que l'algo de checksum de la dll windows se base sur une taille minimal de DWORD, donc, possibilité de choper des données externes au fichier en cas de charge ou de hasard malencontreux sur la gestion d'espace disque ...) .

Je me tourne donc vers vous pour savoir si vous n'aviez pas quelques bons conseils sur des algos de calculs de CRC, au plus possible performants.

Les mdb, générées en grand nombre, font en général quelques Mo à quelques dizaines de Mo chacune.

Zog ?

Lien à poster

regarde du coté de la norme iso 3309

Code d'exemple pour les fichier PNG Ici c'est du CRC 32 donc sur 4 octets

recherche google

J'ai implémenté le CRC de la couche IP RFC 1071 pour un generateur de trafic fait maison. J'arrive a saturer les liaisons reseau a quasiement 100%. Donc a priori la performance est bonne (au moins sur des trames de 1500 octets environ)

Cela dit, ces algo sont indépendant de la taille du bloc, donc tes fichiers de base de données seront parfaitement traité, et je pense dans des delais tres corrects. je ne connais pas quelle fonction de l'API windows vous utilisez.

Enfin, je pense que d'un point de vue plus sécuritaire, vous devriez effectuer un hashage MD5 par exemple plutot qu'un CRC.

Lien à poster
×
×
  • Créer...