PHP sha1_file() Function
Topic: PHP String ReferencePrev|Next
Description
The sha1_file()
function calculates the sha1 (Secure Hash Algorithm 1) hash of a file.
This function calculates the sha1 hash of the file using the US Secure Hash Algorithm 1, and returns that hash. To calculate the sha1 hash of a string, use the sha1() function.
The following table summarizes the technical details of this function.
Return Value: | Returns the sha1 hash on success, or FALSE on failure. |
---|---|
Version: | PHP 4.3.0+ |
Syntax
The basic syntax of the sha1_file()
function is given with:
The following example shows the sha1_file()
function in action.
Example
Run this code »<?php
// Sample file
$filename = "hello.txt"; // Contains the text "Hello World!"
// Calculating the hash
echo sha1_file($filename);
?>
The output of the above example will look something like this:
Tip: The sha1_file()
function often used to create a unique hash code for a file sent over network. So that after downloading the file user can verify its integrity by calculating its SHA1 hash and comparing it against the hash code provided with the distribution. This process makes it possible to ensure that files transferred over a network are not corrupted.
Parameters
The sha1_file()
function accepts the following parameters.
Parameter | Description |
---|---|
string | Required. Specifies the name of the file to create the hash from. |
raw_format | Optional. If set to true , it returns the hash in raw binary format with a length of 20. Default value is false which returns the hash as a 40-character hexadecimal number. |
More Examples
Here're some more examples showing how sha1_file()
function actually works:
The following examples demonstrate how to verify a file for any change using this function.
The PHP code below first stores the SHA1 hash of a file in a text file.
Example
Run this code »<?php
// Sample file
$file = "post.php";
// Storing the SHA1 hash of config file in "hash.txt" file
file_put_contents("hash.txt", sha1_file($file));
?>
And the following PHP code calculates and compares the SHA1 hash of the "post.php" file with its initial SHA1 hash stored in the "hash.txt" and tells us whether it is modified or not.
Example
Run this code »<?php
// Retrieving the stored SHA1 hash
$prev_hash = file_get_contents("hash.txt");
// Verifying the current SHA1 hash with previous one
if(sha1_file("post.php") == $prev_hash){
echo "There has been no change in the file.";
} else{
echo "The file has been modified.";
}
?>