CRC 16 32 d'un fichier

Oimbart Messages postés 5 Date d'inscription jeudi 28 mars 2002 Statut Membre Dernière intervention 20 octobre 2004 - 20 oct. 2004 à 00:02
magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009 - 20 oct. 2004 à 00:51
je voudrais savoir ou je je pourrais trouver des information sur le CRC 32 ou 16. Je voudrais trouver le core CRC d'un fichier en PHP. §Car je voudrais trouver l'integrité d'un fichier. cela me permetra de réaliser un bot en php pour le controle des fichier d'un serveur web.

7 réponses

magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009
20 oct. 2004 à 00:15
Si tu cherche des informations sur la fonction CRC32() voici ce que dit le manuel de PHP :

crc32
(PHP 4 >= 4.0.1, PHP 5)

crc32 -- Calcule la somme de contrôle CRC32
Description
int crc32 ( string str)

crc32() génère la somme de contrôle cyclique CRC 32, calculée sur 32 bits, et appliqué à la chaîne str. Cette fonction est généralement utilisée pour valider l'intégritée de données durant une transmission.

Note : Comme le type d'entier de PHP est signé, et que de nombreuses sommes de contrôle CRC32 aboutissent à un nombre négatif, vous devez utiliser le format "%u" de la fonction sprintf() ou printf() pour obtenir la représentation littérale de la somme de contrôle CRC32.

Cet exemple illustre comment afficher la somme de contrôle avec la fonction printf() : Exemple 1. Afficher une somme de contrôle CRC32

<?php
$checksum = crc32("Le vif zéphyr jubile sur les kumquats du clown gracieux.");
printf("%u\n", $checksum);
?>


Voir aussi md5() et sha1().

MAIS

Une fonction plus intéressant je pense est la fonction md5_file()

md5_file
(PHP 4 > = 4.2.0, PHP 5)

md5_file -- Calcule le md5 d'un fichier
Description
string md5_file ( string filename [, bool raw_output])

md5_file() calcule le MD5 du fichier filename en utilisant l'algorithme RSA Data Security, Inc. MD5 Message-Digest Algorithm, puis retourne la valeur ainsi calculée. Le résultat est un nombre de 32 caractères hexadécimaux. Si le paramètre optionnel raw_output vaut TRUE, le digest MD5 est retourné au format binaire brut, avec une taille de 16.

Note : Le paramètre optionnel raw_output a été ajouté en PHP 5.0.0 et vaut par défaut FALSE.

md5_file() a la même utilité que la commande en ligne md5sum.

Voir aussi md5(), crc32() et sha1_file().

VOILA, Bonne programmation ;-)

*************
On a parfois de la chance dans son malheur, moi par exemple, je me suis blessé avec une boite de sparadraps (P.Geluck)

Si vous désirez vous ajouter dans mes contacts MSN, veuillez m'envoyer un message via ce site.
0
magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009
20 oct. 2004 à 00:17
Ah oui, aussi

J'ai utilisé la fonction md5_file() pour tester si deux images étaient identiques ou non

et ca marche sans problème. La modification d'un seul pixel dans l'image fait changer la clef md5

Mais ca ne tient pas compte du changement de nom du fichier mais ce n'est pas problématique pour un bot et pour la plus part des applications

*************
On a parfois de la chance dans son malheur, moi par exemple, je me suis blessé avec une boite de sparadraps (P.Geluck)

Si vous désirez vous ajouter dans mes contacts MSN, veuillez m'envoyer un message via ce site.
0
Oimbart Messages postés 5 Date d'inscription jeudi 28 mars 2002 Statut Membre Dernière intervention 20 octobre 2004
20 oct. 2004 à 00:25
le MD5 est trés lourd pour des fichiers de plus de 400Mo les risques de timeout du sripts sont tres grand.

Je cherche donc quelque chose de plus lege que MD5...

mais pour ce qui est des fichiers renomés ils sont donc inéxistant dans ma base de données donc sujet à suppression et remplacement par le bon fichier (voila).

Il me manque un controle performant pour les fichiers (CRC32)
0
magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009
20 oct. 2004 à 00:27
Oula un fichier php de 400 méga lol, désolé alors je ne sais pas ;-)
*************
On a parfois de la chance dans son malheur, moi par exemple, je me suis blessé avec une boite de sparadraps (P.Geluck)

Si vous désirez vous ajouter dans mes contacts MSN, veuillez m'envoyer un message via ce site.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Oimbart Messages postés 5 Date d'inscription jeudi 28 mars 2002 Statut Membre Dernière intervention 20 octobre 2004
20 oct. 2004 à 00:34
... d'information

c pour un intranet, il y a une partie documentations qui doit etre des plus sécurisés.

Et il est possible d'avoir des fichiers en moyene de 100Mo pouvant aller jusqu'a 650Mo

ceci dit si je trouve pas je m'arrange autrement... (vérification par la taille si le fichier est trop gros pour le CRC ou MD5)

mais je pense garder la solution du MD5 si je trouve rien d'autre et limiter la taille des fichier à 100Mo en intranet et 10Mo en site web...
0
magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009
20 oct. 2004 à 00:49
J'ai trouvé une information a propos de l'algo CRC32
en anglais

http://www.codeguru.com/Cpp/Cpp/algorithms/checksum/article.php/c5103/

Le petite tableau indique le temps d'execution en secondes pour le calcul d'un CRC32 sur des fichiers allant de 32KB a 5GO suivant le type de plateforme que l'on utilise.

*************
On a parfois de la chance dans son malheur, moi par exemple, je me suis blessé avec une boite de sparadraps (P.Geluck)

Si vous désirez vous ajouter dans mes contacts MSN, veuillez m'envoyer un message via ce site.
0
magidev Messages postés 249 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 28 août 2009
20 oct. 2004 à 00:51
Et ceci

http://www.zend.com/codex.php?id=572&single=1

*************
On a parfois de la chance dans son malheur, moi par exemple, je me suis blessé avec une boite de sparadraps (P.Geluck)

Si vous désirez vous ajouter dans mes contacts MSN, veuillez m'envoyer un message via ce site.
0
Rejoignez-nous