sha1

関数の概要

PHPの sha1 関数は、指定した文字列のSHA-1ハッシュ値を計算して返します。SHA-1は広く使われているハッシュアルゴリズムで、40文字の16進数形式の文字列を生成します。主にデータの整合性チェックやパスワードの簡易的なハッシュ化などに利用されます。

パラメータの説明

  • string $str : ハッシュ化したい文字列を指定します。
  • bool $raw_output = false : 結果を生のバイナリ形式で返すかどうかを指定します。
    • false(デフォルト):40文字の16進数文字列を返します。
    • true:20バイトの生のバイナリ文字列を返します。

戻り値

入力文字列のSHA-1ハッシュ値を返します。$raw_outputfalseの場合は40桁の16進数文字列、trueの場合は20バイトの生バイナリ文字列を返します。

使用例

基本的な使い方

<?php
$input = "hello world";
$hash = sha1($input);
echo $hash;  // 出力例: 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
?>

この例では「hello world」のSHA-1ハッシュ値を取得し、16進数の文字列として表示しています。

生のバイナリ形式で取得する例

<?php
$input = "hello world";
$rawHash = sha1($input, true);
echo bin2hex($rawHash);  // 16進数文字列に変換して表示
?>

$raw_outputtrueにすることでバイナリ形式のハッシュを取得し、bin2hexで16進数に変換して表示しています。

パスワードチェックに使う例

<?php
$stored_hash = "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8";  // sha1("password")
$input_password = "password";

if (sha1($input_password) === $stored_hash) {
    echo "パスワードが一致しました";
} else {
    echo "パスワードが違います";
}
?>

保存されたハッシュと入力されたパスワードをSHA-1でハッシュ化したものを比較してパスワード認証を行う簡単な例です。

関連する関数

  • md5() – MD5ハッシュ値を取得する関数
  • hash() – より多くのハッシュアルゴリズムに対応している汎用ハッシュ関数
  • password_hash() – パスワードの安全なハッシュ化専用関数

まとめ

sha1関数はPHPで簡単にSHA-1ハッシュ値を生成できる便利な関数です。文字列の整合性確認や簡易的な識別子生成に適していますが、安全性が求められるパスワード管理にはpassword_hash()などより強力な関数を使用することが推奨されます。複数の利用方法を理解して、実務で役立ててください。