問題タブ [password-hash]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
5238 参照

php - パスワードからソルトを取得し、それを使用してユーザーを検証する方法は?

パスワードの暗号化に関する多くの質問とチュートリアルを読みましたが、多くのことを学びましたが、これに対する答えはどこにも見つかりませんでした.

データベースに保存するパスワードをハッシュするために crypt() を使用したいと考えています。また、適切に機能するようにソルトを使用する必要があることも知っています。ランダムなソルトを生成する最良の方法は、これまたは類似のものを使用することであると読みました。

私が正しく理解した場合、プロセスは次のとおりです。

  1. ユーザーがパスワードを入力
  2. 塩をランダムに作成する
  3. ハッシュ パスワードとソルト
  4. 結果をデータベースに保存

しかし、ユーザーがログインしようとしたときにソルトを回復するにはどうすればよいですか?

  1. ユーザーは自分のパスワードを入力します
  2. 私はどういうわけか彼自身のユニークなランダムに生成された塩を追加します
  3. 両方を一緒にハッシュする
  4. データベースに保存されているハッシュ化されたソルト付きパスワードと比較します。

私が見つけたいくつかの質問では、答えの 1 つは、ランダムに生成されたソルトをデータベースに保存することでした。しかし、ソルティングの全体的な目的は、より安全にすることだと思いました。攻撃者が私の DB にアクセスすると、「ソルト」フィールドが表示され、パスワードが暗号化されていても、アカウントに簡単にアクセスできるようになります。

他の回答では、crypt() を使用するときに「ソルト」がパスワードの先頭に追加されるため、別のフィールドに保存する必要はないとのことです。私の質問は、どうすればアクセスできますか? これを行う機能があり、私は完全に欠けていますか?

0 投票する
1 に答える
1467 参照

php - Codeigniter でパスワードをハッシュする最良の方法は何ですか?

最近、次のように CodeIgniter で挿入時にパスワードをハッシュしようとしましたが、

しかし、「要求されたクラスをロードできません: passwordhash」というエラーが表示されました。これで私を助けてください、またはそれを行うための最良の方法は何ですか.

0 投票する
1 に答える
11728 参照

c# - How to verify a password using BCrypt

How do I check if a user entered password matches a password that has been hashed and stored into a database by somebody else. Normally you would use this right?:

So what if you don't have the passwordHash variable which contains the hashed password?

I don't have a great understanding of how BCrypt works so I think I am missing something very simple.

0 投票する
1 に答える
171 参照

php - PHP 5.5 password_* 関数の再ハッシュ

PHPpassword_*関数を使用してパスワードハッシュを設定しました

1)password_hash($password, PASSWORD_BCRYPT, array("cost" => 11);

2)return password_verify($password, $hashedPassword)? true : false;

すべて正常に動作します。

また、2 つのパラメーター、$hashedPassword、およびアルゴリズムを使用する password_needs_rehash() 関数も見つかりました。例:

password_needs_rehash($hashedPassword, PASSWORD_BCRYPT);

アルゴリズムまたはコストが変更されたときにこれを使用することを理解しています。

すべてが明らかです、私はただ疑いがあります。

password_needs_rehash() 関数を呼び出さずにコストを変更しようとすると、ログインできます。

ハッシュを生成する関数も変更してみます。アルゴリズムを PASSWORD_BCRYPT から PASSWORD_DEFAULT に変更します。

いつでもログインできます。

誰かがそれがどのように機能するか説明できますか?

アルゴリズムの変更時に再ハッシュしない場合、PHP password_* はこれをどのように処理しますか?

PS 質問に小さな質問... PHP function_* を使用すると、パスワードに "salt" を使用することが推奨されますか?

ありがとう!!