Current Location: Home> Latest Articles> How to generate hash value for a file using md5_file()

How to generate hash value for a file using md5_file()

M66 2025-05-28

In PHP, generating hash values ​​for files is a common operation, especially when uploading, downloading verification, and data integrity verification. The md5_file() function provides an easy way to quickly calculate the MD5 hash value of a file.

md5_file() function introduction

md5_file() is a built-in function of PHP that calculates the MD5 hash value of a specified file and returns a 32-bit hexadecimal string. Its basic usage is as follows:

 string md5_file ( string $filename [, bool $binary = false ] )
  • $filename : The file path to which the hash needs to be calculated.

  • $binary : Whether to return the original binary format (default is false , returning a hexadecimal string).

Example of quickly generating file hash values

Suppose you have a file that you want to quickly get its MD5 value, you can write it like this:

 <?php
$file = '/path/to/your/file.txt';
$hash = md5_file($file);
echo "FiledMD5The hash value is: " . $hash;
?>

Notice

If your file is large, md5_file() will automatically read the file in a stream manner, avoiding loading a large amount of memory at once, which is more efficient.

Example of checking file hash value

After uploading or downloading the file, in order to confirm that the file has not been tampered with, you can use md5_file() to compare the expected hash value:

 <?php
$expected_hash = 'd41d8cd98f00b204e9800998ecf8427e'; // expectedMD5value
$file = '/path/to/your/file.txt';

$actual_hash = md5_file($file);

if ($actual_hash === $expected_hash) {
    echo "File verification passed,Files are intact and unlossed。";
} else {
    echo "File verification failed,Files may be tampered with。";
}
?>

Example of using URLs

Sometimes we need to verify the files downloaded through the network. Assuming that the file is stored at http://m66.net/files/sample.txt , we can save the file locally and then use md5_file() to calculate the hash value.

 <?php
$url = 'http://m66.net/files/sample.txt';
$temp_file = '/tmp/sample.txt';

// Download the file
file_put_contents($temp_file, file_get_contents($url));

// calculateMD5
$hash = md5_file($temp_file);
echo "下载FiledMD5The hash value is: " . $hash;

// Delete temporary files
unlink($temp_file);
?>

Summarize

  • md5_file() is a convenient tool for calculating file MD5 hashing and is suitable for most file verification scenarios.

  • Combined with downloading files, you can save the remote file first and then calculate it.

  • By comparing hash values, you can quickly judge the integrity and security of the file.

Using the md5_file() function can effectively improve data security during file processing and is an indispensable practical function in PHP file operations.