PHP sha1_file() 函数
说明
sha1_file()
函数计算文件的 sha1(安全哈希算法 1)哈希。
此函数使用安全散列算法 1 计算文件的 sha1 散列,并返回该散列。 要计算字符串的 sha1 哈希,请使用 sha1() 函数。
下表总结了该函数的技术细节。
返回值: | 成功时返回 sha1 哈希,失败时返回 FALSE 。 |
---|---|
版本: | PHP 4.3.0+ |
语法
sha1_file()
函数的基本语法如下:
sha1_file(filename, raw_format);
以下示例显示了 sha1_file()
函数的作用。
<?php
// 示例文件
$filename = "hello.txt"; // Contains the text "Hello World!"
// 计算哈希
echo sha1_file($filename);
?>
上面示例的输出将如下所示:
2ef7bde608ce5404e97d5f042f95f89f1c232871
提示: sha1_file()
函数通常用于为通过网络发送的文件创建唯一的哈希码。 因此,在下载文件后,用户可以通过计算其 SHA1 哈希并将其与分发提供的哈希码进行比较来验证其完整性。 此过程可以确保通过网络传输的文件不会损坏。
参数
sha1_file()
函数接受以下参数。
参数 | 说明 |
---|---|
string | 必填。 指定要从中创建哈希的文件的名称。 |
raw_format | 可选。 如果设置为 true ,则返回长度为 20 的原始二进制格式的哈希值。默认值为 false ,它将哈希值作为 40 个字符的十六进制数返回。< /td>
|
更多示例
这里有更多示例展示了 sha1_file()
函数的实际工作原理:
以下示例演示如何使用此函数验证文件是否有任何更改。
下面的 PHP 代码首先将文件的 SHA1 哈希值存储在文本文件中。
<?php
// Sample file
$file = "post.asp";
// 将配置文件的 SHA1 哈希值存储在"hash.txt"文件中
file_put_contents("hash.txt", sha1_file($file));
?>
下面的 PHP 代码计算并比较"post.asp"文件的 SHA1 哈希与存储在"hash.txt"中的初始 SHA1 哈希,并告诉我们它是否被修改。
<?php
// 检索存储的 SHA1 哈希
$prev_hash = file_get_contents("hash.txt");
// 用前一个哈希验证当前的 SHA1 哈希
if(sha1_file("post.asp") == $prev_hash){
echo "There has been no change in the file.";
} else{
echo "The file has been modified.";
}
?>
Advertisements