PHP sha1_file()-funktionen

Exempel

Beräkna SHA-1-kontrollsumman för textfilen "test.txt":

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

以上代码的输出:

aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d

Definition och användning

sha1_file()-funktionen beräknar filens SHA-1-kontrollsumma.

sha1_file()-funktionen använder USA Secure Hash-algoritmen 1.

Förklaring från RFC 3174 - USA Secure Hash-algoritmen 1: SHA-1 genererar en 160-bitars utdata som kallas meddelandesammanfattning. Meddelandesammanfattningen kan matas in i en algoritm som kan generera eller verifiera meddelandesignaturer. Att signera meddelandesammanfattningen istället för meddelandet kan förbättra processens effektivitet, eftersom meddelandesammanfattningens storlek vanligtvis är mycket mindre än meddelandets storlek. Verifieraren av den digitala signaturn måste använda samma hashalgoritmen som skaparen av den digitala signaturn.

如果成功则返回已计算的 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 "The file is ok.";
  }
else
  {
  echo "The file has been changed.";
  }
?>

以上代码的输出:

The file is ok.