Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CRC32 API, ALGORITHME DE SOMME DE CONTROL


Information sur la source

Catégorie :API Classé sous : crc, crc32, checksum, somme, algo Niveau : Initié Date de création : 28/11/2006 Date de mise à jour : 04/12/2006 08:42:46 Vu / téléchargé: 8 952 / 579

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

Dans la lignée de mon API MD5, voici celle pour CRC32.

CRC32 suis la même convention d'écriture/utilisation que mon autre API a savoir :

Une routine qui calcul la somme a partir d'un Buffer quelquonque
Une routine qui calcul la somme a partir d'une chaîne de caractère
Une routine qui calcul la somme a partir d'un fichier (consomme 2Ko pour le calcul)

Vous trouverez dans le zip :

CRC32.pas (API a installer dans un répertoire d'unités de Delphi)
CRC32Demo/... (Demo d'utilisation)


Définition CRC32 :
Contrôle de redondance cyclique (Cyclic Redondance Check). CRC32 renvois la somme des bits d'une donnée sous la forme d'un entier 32bits.
CRC32 est utilisé pour contrôler l'intégrité d'une donnée après diverse opérations (copie, téléchargement, chiffrement, compression etc...).
Sont utilisation est très vaste, tout comme d'autres algorithmes de somme ou condensat, CRC32 sert dans la vérification des
paquets transmis via ethernet ou modem, dans le codec Mpeg2, les images PNG et bien d'autres encore.

CRC32 fait partis des trois algorithmes les plus celebrement utilisés avec MD5 et SHA1.



voila, amusez vous bien.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

03 décembre 2006 19:15:27 :
Ajout d'une fenetre de progression pour les gros fichier (>= 8Mo)
04 décembre 2006 08:42:46 :
Mise a jours de CRC32FromFile avec procédure CallBack facultative. sous l'excellent conseil de florenth.

Commentaires et avis

signaler à un administrateur
Commentaire de cirec le 30/11/2006 13:09:29 administrateur CS

Salut,

que dire si ce n'est bravo ...
après le MD5 voici le CRC32

à quand le SHA1 ?  lol

Même si le code me dépasse un peut
j'ai toute fois une où deux questions :
d'ou proviennent les valeurs qui sont dans (  CRC32Table ) ?
et à quoi correspondent elles ?

10/10
@+
Cirec

signaler à un administrateur
Commentaire de f0xi le 30/11/2006 20:11:51 administrateur CS

Les valeurs du tableau CRC32Table sont des resultats pre-calculées sont definies dans le journal systeme Microsoft de mars 1995.

ces données, sont obtenues grace a un calcul basé sur un polymone (crc32-ccitt)..
qu'on peut traduire en delphi par ceci :

procedure PCRC(const Polynome : integer; const T : array of integer);
var
  i, j, R:integer;
begin
  for i := 0 to 255 do begin
      R := i;
      for j := 0 to 7 do begin
          if (R and 1)<>0 then
             R := (R shr 1) xor Polynome
          else
             R := R shr 1;
        end;
      T[i] := R;
    end;
end;

pas bien compliqué a comprendre donc.
pour plus de details : http://en.wikipedia.org/wiki/Cyclic_redundancy_check

signaler à un administrateur
Commentaire de f0xi le 30/11/2006 20:13:24 administrateur CS

sinon je planche deja sur SHA ...

signaler à un administrateur
Commentaire de cirec le 30/11/2006 23:32:55 administrateur CS

J'ai hâte de voir le code du SHA1 ...

et merci pour toutes ces précisions
Bonne prog et ..
@+

signaler à un administrateur
Commentaire de f0xi le 04/12/2006 01:47:58 administrateur CS

Salut Flo!

bonne idée le callback, au depart c'est ce que je voulais faire ...
alors je te laisse le choix, soit tu prend ma source et tu l'implemente, soit tu decide de m'en laisser le soin.

il est vrai que c'est mieux de laisser le choix a l'utilisateur.

ce qui pourrais donc donner :

type
  TCRCProgressCallBack = procedure(const Position, Size : int64);


function CRC32FromFile(Const FileName : String; var ProgressCallBack : TCRCProgressCallBack = nil) : cardinal;

signaler à un administrateur
Commentaire de f0xi le 04/12/2006 23:47:43 administrateur CS

Pourquoi limiter alors l'utilisation du callback aux gros fichiers ?

j'ai fais la maj ce matin alors que j'etais encore dans le brouillard du dodo :)

attention, la position varie de 2048 en 2048 donc toujours multiple de 2 et donc ...

pour l'exception je prend note, c'est vrai que je ne pense pas a reutiliser ma source TErrorManager, car je souhaite toujours faire des sources independante les une des autres.

et en effet tu as raison le retour $FFFFFFFF et non # (c'est pas du html) est une erreur si le fichier n'existe pas.
un simple Warning sur file not found serait suffisant.

je fais la maj dans pas longtemps.

signaler à un administrateur
Commentaire de N_M_B le 29/02/2008 16:29:51

bonjour ,enfaite je voudrais utilise la fonction CRC32FromFile
comme ceci CRC32FromFile(application.ExeName)
est ce possible ?

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Calculateur de Block dans une Chaine de caractere [ par Napster ] salut , j'ai un petit souci a ce calculateur de CRC32 voila un extrait de ma source binaire : 55 AA 01 01 00 17 17 6C 01 73 29 34 21 15 5A 5A00 00 7F algo d'évaluation [ par iama ] Bonjour,J'ouvre ce post pour demander de l'aide sur la réalisation d'un algorithme d'évaluation d'une expression arithmétiqueUn joueur va ramasser au Ma première dll son programme ! [ par TouTSpeed ] Bonjour j'ai un léger soucis avec ma première dll et son programme . En fait tout fonctionne parfaitement sauf à la fermeture du programme ou j'obtien Déphasage audio numérique : détection [ par mbsofts ] Bonjour, je cherche un algo de détection de déphasage dans un fichier son.Si vous avez des algo à me filer ou des documentations à me conseiller, merc Afficher une somme a partir d'une date [ par abdousoft ] Sltj'ai deux Tables paradox contient dans leur liste des champ un champ "Date" dans chaque table, et un champ "total" dans chaque table aussi,Remarque dbgrdi avec une somme auto [ par abdousoft ] BJR j'ai un composant dbgrid relier avec un table de bd, je cherche apres chaque insertion ou modification dans cette grid,il m'aff QuickReport et somme partielle [ par gebu34 ] Bonjour à tous,J'utilise QuickReport 4 et Delphi 7.J'aimerais obtenir une somme dans chaque SubDetail, puis la somme totale en fin de page.Je m'expliq traduction ??? [ par greg38bj ] bonjour à tousJe galère sur la traduction d'un code que l'on m'a dit être en delphilorsque j'essaye, j'obtiens des erreurs un peu partoutje develloppe Traitement de fichier binaire [ par Napster ] salut ,salut , j'ai un petit souci a ce calculer une chaine de caractaire  de CRC32 voila un extrait de ma source binaire : BB AA 01 01 00 17 17 6C 01 Juste un petit prog de calcul [ par Cyanure ] Bonjour, Je veux faire un prog qui fera l'addition entre 3 edit et mettra la somme dans un quatrieme. Je voudrait que les 3 edit soit egal a zero au d


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,41 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.