For those who are wondering, there appears to be no fundamental difference between hash_file('md5')/hash_file('sha1') and md5_file()/sha1_file(). They produce identical output and have comparable performance.
There is, however, a difference between hash_file('crc32') and something silly like crc32(file_get_contents()).
crc32(file_get_contents())'s results are most similar to those of hash_file('crc32b'), just with the octets reversed:
<?php
$fname = "something.png";
$hash = hash_file( 'crc32', $fname );
echo "crc32 = $hash\n";
$hash = hash_file( 'crc32b', $fname );
echo "crc32b = $hash\n";
$hash = sprintf("%x",crc32(file_get_contents($fname)));
echo "manual = $hash\n";
?>
crc32 = f41d7f4e
crc32b = 7dafbba4
manual = a4bbaf7d
hash_file
(PHP 5 >= 5.1.2, PECL hash:1.1-1.5)
hash_file — Génère une valeur de hachage en utilisant le contenu d'un fichier donné
Description
Liste de paramètres
- algo
-
Nom de l'algorithme de hachage sélectionné (c'est-à-dire "md5", "sha256", "haval160,4", etc.)
- filename
-
URL indiquant l'emplacement du fichier qui sera haché; Supporte les enveloppes fopen().
- raw_output
-
Lorsqu'il vaut TRUE, la sortie sera des données brutes binaires. Lorsqu'il vaut FALSE, la sortie sera des chiffres hexadécimaux en minuscule. La valeur par défaut est FALSE.
Valeurs de retour
Retourne une chaîne de caractères contenant l'empreinte numérique calculée en chiffre hexadécimal minuscule à moins que raw_output soit fixé à TRUE. Dans ce cas, la représentation brute binaire de l'empreinte numérique est retournée.
Exemples
Exemple #1 Exemple avec hash_file()
<?php
/* Crée un fichier pour calculer son empreinte numérique */
file_put_contents('exemple.txt', 'Le rapide goupil brun sauta par dessus le chien paresseux.');
echo hash_file('md5', 'exemple.txt');
?>
L'exemple ci-dessus va afficher :
2dfe052a8caca3db869ede6ae544cd5d
hash_file
23-Jul-2008 03:16
