PHPのbcryptでパスワードを生成するサンプルです。
パスワードハッシュを作る
password_hash(string $password, string|int|null $algo, array $options = []): string |
password_hashの2つめの引数にPASSWORD_DEFAULTを指定するとbcrypt アルゴリズムを使います。
PHP 5.5.0 の時点でのデフォルトです。
https://www.php.net/manual/ja/function.password-hash.php
<?php
$password = password_hash("あいうえ", PASSWORD_DEFAULT);
echo $password; //$2y$10$dCeimFQ0bUyQtNpE99oJTePyg2N9vOwmS438CQnbgctorxIjixsQu
if (password_verify("あいうえ", $password)) {
echo "OK"; // OK
}
3行目は、password_hashで文字列をハッシュ化しています。
PASSWORD_DEFAULTを指定するとbcrypt アルゴリズムを使います。
生成される文字の長さは60文字です。(イメージ:生成された文字列をテーブルに保存)
7行目は、元の文字列とハッシュ化した文字列を比較しています。結果はtrueになります。
(イメージ:ユーザが入力したパスワード値とテーブルの値を比較し同じならログイン)
関連の記事