PHPのpassword_hashを使用してパスワードをハッシュし検証する方法
P粉898107874
P粉898107874 2023-08-24 09:04:22
0
2
373

最近、インターネットで偶然見つけたログイン スクリプトに独自のセキュリティを実装しようとしています。ユーザーごとにソルトを生成する独自のスクリプトを作成する方法を習得するのに苦労した後、password_hash を見つけました。

(このページを読んでいると)私が理解しているように、password_hash を使用すると、その行にソルトがすでに生成されています。これは本物です?

もう一つの質問は、塩を 2 種類用意した方が賢明ではないでしょうか? 1 つはファイルに直接、もう 1 つはデータベースにありますか?これにより、誰かがデータベース内のソルトを破損した場合でも、ソルトをファイルに直接保存できますか?ここで、塩を保管するのは決して賢明な考えではないと読みましたが、人々がそれを何を意味するのかいつも混乱します。

P粉898107874
P粉898107874

全員に返信 (2)
P粉555682718

はい、正しく理解できましたね。password_hash() 関数はそれ自体でソルトを生成し、生成されたハッシュ値にソルトを含めます。ソルトが機能することがわかっている場合でも、ソルトをデータベースに保存することは絶対に正しいです。

リーリー

あなたが言及した 2 番目のソルト (ファイルに保存されているもの) は、実際にはペッパーまたはサーバー側のキーです。ハッシュする前に(塩と同じように)コショウを加えると、コショウを加えることになります。ただし、より良い方法があります。最初にハッシュを計算し、次にサーバー側のキーを使用してハッシュを暗号化する (両方の方法) ことができます。これにより、必要に応じてキーを変更できます。

ソルトとは対照的に、このキーは秘密にしておく必要があります。よく混同して塩を隠そうとする人がいますが、塩に役割を果たしてもらい、秘密をキーで追加する方が良いでしょう。

いいねを押す+0
    P粉377412096

    パスワードを保存するには、password_hashを使用することをお勧めします。データベースとファイルに分けないでください。

    次の入力があるとします:

    リーリー

    まず、次の手順を実行してパスワードをハッシュします:

    リーリー

    次に、出力を表示します:

    リーリー

    ご覧のとおり、ハッシュ化されています。 (以下の手順を実行したと仮定します)。

    ここで、このハッシュされたパスワードをデータベースに保存します。パスワード列がハッシュ値を収容できる十分な大きさであることを確認してください (少なくとも 60 文字以上)。ユーザーがログインを要求した場合、次のようにデータベース内のハッシュを使用して、入力されたパスワードを確認できます。 リーリー

    公式リファレンス

    いいねを押す+0
      最新のダウンロード
      詳細>
      ウェブエフェクト
      公式サイト
      サイト素材
      フロントエンドテンプレート
      私たちについて 免責事項 Sitemap
      PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!