PHP String sha1_file() Function
The PHP String sha1_file() function is used to calculate and return the sha1 hash of the file given by filename using the US Secure Hash Algorithm 1. The hash is a 40-character hexadecimal number.
Syntax
Below is the syntax of the PHP String sha1_file() function −
string sha1_file ( string $filename, bool $binary = false )
Parameters
Here are the parameters of the sha1_file() function −
$filename − It is the filename of the file to hash.
$binary − When true, it returns the digest in raw binary format with a length of 20.
Return Value
The sha1_file() function returns a string on success. And FALSE on failure.
PHP Version
First introduced in core PHP 4.3.0, the sha1_file() function continues to function easily in PHP 5, PHP 7, and PHP 8.
Example 1
First we will show you the basic example of the PHP String sha1_file() function to get the sha1 hash for the given file.
<?php $file = '/PHP/PhpProjects/myfile.txt'; $hashValue = sha1_file($file); echo $hashValue; ?>
Output
Here is the outcome of the following code −
bda0f341ad3d53120699473ecb52347e4da0d7a3
Example 2
In the below PHP code we will try to use the sha1_file() function and with optional parameter $binary with different values TRUE and FALSE.
<?php $file = '/PHP/PhpProjects/myfile.txt'; // Without optional parameter echo sha1_file($file) . "\n"; // with optional parameter $raw = FALSE, no changes in result echo sha1_file($file, FALSE) . "\n"; // with optional parameter $raw = TRUE, result changed echo sha1_file($file, TRUE) . "\n"; ?>
Output
This will generate the below output −
bda0f341ad3d53120699473ecb52347e4da0d7a3 bda0f341ad3d53120699473ecb52347e4da0d7a3
Example 3
Now the below code retrieves specific sha1 hash value of the provided file using the sha1_file() function, and prints it.
<?php
foreach(glob('/PHP/PhpProjects/myfile.txt') as $ent)
{
if(is_dir($ent))
{
continue;
}
echo $ent . ' (SHA1: ' . sha1_file($ent) . ')', PHP_EOL;
}
?>
Output
This will create the below output −
/PHP/PhpProjects/myfile.txt (SHA1: bda0f341ad3d53120699473ecb52347e4da0d7a3)
Example 4
Let us see a different example to check the integrity of the file. So let us save the SHA-1 hash of "myfile.txt" in a file like the below −
<?php
$input = sha1_file("/PHP/PhpProjects/myfile.txt");
file_put_contents("/PHP/PhpProjects/sha1file.txt", $input);
?>
Now check if "myfile.txt" has been changed that is if the SHA-1 hash has been changed −
<?php
$input = file_get_contents("/PHP/PhpProjects/sha1file.txt");
if (sha1_file("/PHP/PhpProjects/myfile.txt") == $input)
{
echo "The file is Fine.";
}
else
{
echo "The file has been changed.";
}
?>
Output
Following is the output of the above code −
The file is Fine.