PHP sha1_file() 関数

テキストファイル「test.txt」の SHA-1 散列を計算します:

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

以下のコードの出力:

aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d

定義と用法

sha1_file() 関数はファイルの SHA-1 散列を計算します。

sha1_file() 関数はアメリカの Secure Hash 算法 1を使用します。

RFC 3174 からの説明 - アメリカの Secure Hash 算法 1:SHA-1 は 160 ビットの出力「メッセージの要約」を生成します。メッセージの要約は、メッセージの署名を生成または検証する署名アルゴリズムに投入できます。メッセージの要約に対して署名を行うのではなく、メッセージに対して署名を行うことで、プロセスの効率を向上させることができます。なぜなら、メッセージの要約のサイズは通常、メッセージよりもはるかに小さいからです。デジタル署名の検証者は、デジタル署名の作成者と同じ散列アルゴリズムを使用する必要があります。

成功した場合、計算された SHA-1 ハッシュを返し、失敗した場合 FALSE を返します。

構文

sha1_file(file,raw)
パラメータ 説明
file 必須。計算するファイルを指定します:
raw

オプション。ボルン値、16進数または二進数の出力形式を指定します:

  • TRUE - オリジナルの20文字の二進数形式
  • FALSE - デフォルト。40文字の16進数

技術的詳細

返り値: 成功した場合、計算された 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 "ファイルが変更されました.";
  }
?>

以下のコードの出力:

ファイルは正常です。