字符串函数

PHP sha1_file() 函数

主题:PHP 字符串参考上一页|下一页

说明

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