PHP sha1_file() 関数

❮ PHP 文字列リファレンス

テキストファイル "test.txt" のSHA-1ハッシュを計算します:

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

上のコードの出力は、次の通り:

aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d


定義と用法

sha1_file() 関数は、ファイルのSHA-1ハッシュを計算します。

sha1_file() 関数は、US Secure Hash Algorithm 1 を使用します。

From RFC 3174 - US Secure Hash Algorithm 1: "SHA-1 は 、メッセージダイジェストと呼ばれる 160 ビットの出力値を生成します。 メッセージダイジェストは、例えば、メッセージの署名作成または検証を行うための署名アルゴリズムへの入力となります。 メッセージ自体ではなくメッセージダイジェストに署名を行うことで、通常は署名処理の効率が向上します。 これは通常メッセージダイジェストはメッセージよりもサイズが小さいからです。 デジタル署名を作成するのに使用したアルゴリズムと同じアルゴリズムを使用してデジタル署名の検証を行わなければなりません。"

この関数は、成功した場合は計算したSHA-1ハッシュを返し、失敗した場合はFALSEを返します。


構文

sha1_file(file,raw)

パラメータ 説明
file 必須。計算するファイル
raw 任意。16進または2進の出力形式を指定するブール値:
  • TRUE - 生の20文字の2進数フォーマット
  • FALSE - デフォルト。40文字の16進数

技術内容 ストリーム API を使用するように変更しました。つまり、 sha1_file('http://example.com/..') のように ラッパーとともに使用できるということです。
返り値: 成功した場合は、計算したSHA-1ハッシュを返します。失敗した場合はFALSEを返します。
PHP バージョン: 4.3.0+
変更歴 raw パラメータは PHP 5.0 でオプションになりました

PHP 5.1 以降、sha1_file("https://w3schools.com/..")のように、ラッパーと一緒に sha1_file() が使用できるようになりました

その他の例

例 1

"test.txt" の SHA-1 ハッシュをファイルに格納します:

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

Test if "test.txt" has been changed (that is if the SHA-1 hash has been changed):

<?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.


❮ PHP 文字列リファレンス