テキストファイル "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進の出力形式を指定するブール値:
|
返り値: | 成功した場合は、計算したSHA-1ハッシュを返します。失敗した場合はFALSEを返します。 |
---|---|
PHP バージョン: | 4.3.0+ |
変更歴 | raw パラメータは PHP 5.0 でオプションになりました PHP 5.1 以降、sha1_file("https://w3schools.com/..")のように、ラッパーと一緒に sha1_file() が使用できるようになりました |
"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.