توابع sha1_file() در PHP

مثال

محاسبه هش SHA-1 فایل متنی "test.txt":

<?php
$filename = "test.txt";
$sha1file = sha1_file($filename);
echo $sha1file;
?>

以上代码的输出:

aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d

تعریف و استفاده

توابع sha1_file() هش SHA-1 فایل را محاسبه می‌کند.

توابع sha1_file() از الگوریتم Hash Secure Hash Algorithm 1 (SHA-1) ایالات متحده استفاده می‌کند.

توضیحات از RFC 3174 - الگوریتم Hash Secure Hash Algorithm 1 (SHA-1) ایالات متحده یک خروجی 160 بیتی به نام مختصر پیام تولید می‌کند. مختصر پیام می‌تواند به یک الگوریتم امضای پیام قابل تولید یا تأیید امضای پیام ورودی شود. امضای مختصر پیام به جای امضای پیام، می‌تواند کارایی فرآیند را افزایش دهد، زیرا اندازه مختصر پیام معمولاً بسیار کوچکتر از پیام است. تأییدکننده امضای دیجیتال باید مانند ایجاد‌کننده امضای دیجیتال از همان الگوریتم‌های هش استفاده کند.

如果成功则返回已计算的SHA-1散列,如果失败则返回FALSE。

语法

sha1_file(file,raw)
参数 描述
file 必需。规定要计算的文件。
raw

可选。布尔值,规定十六进制或二进制输出格式:

  • TRUE - 原始20位二进制格式
  • FALSE - 默认。40位十六进制数

技术细节

返回值: 如果成功则返回已计算的SHA-1散列,如果失败则返回FALSE。
PHP版本: 4.3.0+
更新日志:

在PHP 5.0中,raw 参数变成可选的。

自PHP 5.1起,可以通过封装来使用sha1_file()。例如:sha1_file("http://codew3c.com/..")

更多实例

例子1

在文件中存储"test.txt"的SHA-1散列:

<?php
$sha1file = sha1_file("test.txt");
file_put_contents("sha1file.txt",$sha1file);
?>

测试"test.txt"是否已被修改(即SHA-1是否已被修改):

<?php
$sha1file = file_get_contents("sha1file.txt");
if (sha1_file("test.txt") == $sha1file)
  {
  echo "文件正常.";
  }
else
  {
  echo "文件已被更改.";
  }
?>

以上代码的输出:

文件正常。