UI設計したり、ウェブシステムを開発したりします。 

SQL見るだけクエリ#118 PHPのpassword_hash()でパスワードをハッシュ化

記入日:2023-05-06 編集日:2023-05-06

PHPのpassword_hash()でパスワードをハッシュ化してみようと思います。

この記事を読むと(約5分)
PHPのpassword_hash()でパスワードをハッシュ化する方法をイメージできます。

password_hash()でパスワードをハッシュ化

password_hash()は、PHPで使用されるパスワードをハッシュ化するための関数です。パスワードをハッシュ化することで、パスワードを暗号化して安全に保管することができます。

password_hash()関数は、以下のような構文を持ちます。

password_hash($password, $algorithm, $options);

$passwordは、ハッシュ化するパスワードです。

$algorithmは、使用するハッシュ関数のアルゴリズムを指定します。例えば、PASSWORD_DEFAULTを指定することで、システムのデフォルトのアルゴリズムが使用されます。他の使用可能なアルゴリズムには、PASSWORD_BCRYPT、PASSWORD_ARGON2I、PASSWORD_ARGON2IDなどがあります。

$optionsは、オプションの配列です。例えば、ストレッチングの回数やソルトの長さを指定することができます。


以下は、password_hash()関数を使用してパスワードをハッシュ化し、password_verify()関数を使用して正しいパスワードかどうかを確認するための例です。

// パスワードをハッシュ化する
$original_password = 'my_password';
$hashed_password = password_hash($original_password, PASSWORD_DEFAULT);

// データベースに保存するなどして、ハッシュ化されたパスワードを保持する

// ユーザーがログインした場合、パスワードを確認する
$user_input_password = 'my_password';

// ハッシュ化されたパスワードとユーザーが入力したパスワードが一致するかどうかを確認する
if (password_verify($user_input_password, $hashed_password)) {
    echo 'パスワードが一致しました。ログインに成功しました。';
} else {
    echo 'パスワードが一致しません。ログインに失敗しました。';
}

この例では、まずpassword_hash()関数を使用して、元のパスワードをハッシュ化します。次に、データベースなどに保存して、後でパスワードを確認する際に使用します。

ユーザーがログインしようとすると、ユーザーが入力したパスワードを取得し、password_verify()関数を使用して、ハッシュ化されたパスワードと一致するかどうかを確認します。password_verify()関数は、正しいパスワードであればtrueを、そうでなければfalseを返します。

このように、password_hash()関数とpassword_verify()関数を使用することで、パスワードを安全にハッシュ化し、ログインなどの際に確認することができます。

SQLの使いどころ

サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。

SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。

また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。

KK

機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。