begin process at 2012 02 11 08:10:36
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > CRC32 API, ALGORITHME DE SOMME DE CONTROL

CRC32 API, ALGORITHME DE SOMME DE CONTROL


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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é :13 903 / 798

Auteur : f0xi

Ecrire un message privé
Site perso
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

Les Membres Club peuvent 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.

 Sources du même auteur

Source avec Zip COMMANDS MANAGER - BESOIN DE COMMANDES DANS VOS PROGRAMMES T...
Source avec Zip DYNAMIC LIBRARY LOADER CLASS: GAGNEZ DU TEMPS POUR CHARGER L...
Source avec Zip BASE64/BASE64URL ENCODE/DECODE
Source avec Zip NEXTGENS -> UNITÉS DE TYPES ÉVOLUÉS NOUVELLE GÉNÉRATION (DE...
Source avec Zip SIMPLES SOMME DE DONNÉES 8, 16, 32, 64 BITS

 Sources de la même categorie

Source avec Zip Source avec une capture KINECT TEST V1 par FFCAST
Source avec Zip DÉCOUPER UNE FENÊTRE par gta126
Source avec Zip TRANSCRIRE UN FICHIER OPEN FINANCIAL EXCHANGE (OFX) EN FICHI... par jeffem
Source avec Zip Source avec une capture MSXML 4.0 VALIDATION XML / XSD par redtux
Source avec Zip FBRENOMMEADOBJET par fbalien

 Sources en rapport avec celle ci

Source avec Zip RECHERCHE DICHOTOMIQUE (EXEMPLE AVEC UN TABLEAU) par Nicolas___
Source avec Zip MD5 API, LE CELEBRE ALGORITHME DE HACHAGE SOUS DELPHI. par f0xi
Source avec Zip COMPOSANT HASHPROTECTOR (PROTÉGEZ VOS APPLICATIONS CONTRE L... par shining
Source avec Zip Source avec une capture SOMME, FACTEURS, PRODUIT, NOMBRES... par barbichette
Source avec Zip ALGORITHME DE KRUSKAL par Adkiks

Commentaires et avis

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

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

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

sinon je planche deja sur SHA ...

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 ..
@+

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;

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.

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 trouver combinaison de flottants donnant une somme donnée [ par neilerien ] Bonjour à tous, Je cherche un alog permettant de trouver la bonne combinaison de flottants pour trouver un résultat donné. J'ai une liste de flottan Somme dans dbgrid par type produit [ par anil16 ] Bonsoir, j'ai une grille bdgrid qui affiche les données suivantes: [IMG]http://imgur.com/HJu2W.jpg[/IMG] je veux afficher ces données dans une autre d Calculer le nombre d'heure travailler dans le mois [ par orankader ] Bonjour tous le monde j'ai un probmème dans mon programme sur DBgrid entrée sortie le calcul sortie moins entrer se fait correctement total ligne. exe Probleme dans l'event Oncalc [ par boxma ] bonsoir, Pour resumer, j'utilse 2 Tables dans un ficher Access avec les Compos TADO avec la structure suivante : Achat(id_achat ...) Ligne_Achat(id REQUETE SQL AVEC DELPHI ET ADO division d'une somme d'un count [ par sarita1987 ] Bonjour à tous, j'espère trouver de l'aide ici parce-que je traine sur ce probéleme depuis presque une semaine.ma requete fait une somme d'un count et RSA ALGO.... [ par aliilyas ] BONJOUR.il ya quelque temps et je suis à la recherche d'un moyen pour appliquer ( algo rsa) .Mais je n'ai pas réussi à le faire.... exemple : M=data 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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,040 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales