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 — Generate a hash value using the contents of a given file
Beschreibung
string hash_file
( string $algo
, string $filename
[, bool $raw_output
] )
Parameter-Liste
- algo
-
Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..)
- filename
-
URL describing location of file to be hashed; Supports fopen wrappers.
- raw_output
-
When set to TRUE, outputs raw binary data. Default value (FALSE) outputs lowercase hexits.
Rückgabewerte
Returns a string containing the calculated message digest as lowercase hexits unless raw_output is set to true in which case the raw binary representation of the message digest is returned.
Beispiele
Beispiel #1 Using hash_file()
<?php
/* Create a file to calculate hash of */
file_put_contents('example.txt', 'The quick brown fox jumped over the lazy dog.');
echo hash_file('md5', 'example.txt');
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
5c6ffbdd40d9556b73a21e63c3e0e904
hash_file
allaryin at gmail dot com
24-Jul-2008 12:16
24-Jul-2008 12:16
