ハッシュ関数を使用してユーザーのパスワードを暗号化してデータベースに格納すると、無制限の正しいパスワードはありませんか? 複数の文字列で同じハッシュが生成される可能性があります。 これは安全ですか?パスワードハッシュ:無限の正しいパスワード?
1
A
答えて
3
あなたは正しいですか?ハッシュは一般にハッシュ値が表すデータよりも短いため、2つの異なる入力が同じハッシュを生成することがあります。これをハッシュ衝突と呼びます。この機会を減らすには、より良いハッシュアルゴリズムを選択してください。 良いハッシュアルゴリズムが常に変化しているとみなされる基準は、this S.O.を確認してください。役職。
別の理由でプレーンハッシュをデータベースに保存することは安全ではありません。一般的なハッシュアルゴリズムを使用して完成したハッシュのオンラインリストがあります。したがって、これらのリスト(虹のテーブルと呼ばれる)とハッシュされたパスワードをデータベースに取り込み、レインボーテーブルで単純な検索を実行することで、どのパスワードに対応するハッシュを作成することができます。
多くのユーザーが最も一般的でない不正なパスワード(たとえば、受理者)の1つを選択するため、これは大きな問題です。これに対する解決策は、ハッシュと塩と呼ばれています。ハッシュする前に、最初にランダムな文字列をパスワードに追加します。つまり、同じパスワードのうち2つであっても、データベースには異なるハッシュが発生します。これは、hereとhereの方がよく説明されています。
一般的に、このコードを自分で書くのは悪い考えです。 FacebookまたはGoogleのような別のサービスで認証を試してください。彼らのコードは、個々の開発者が思いつくものよりも優れたテストと設計が可能です。
関連する問題
- 1. Wordpressのパスワードハッシュを無効にする
- 2. パスワードハッシュ
- 3. javaでLDAPパスワードハッシュ方式(パスワード認証)をチェックする方法は?
- 4. Recycler無限のスクロールを正しく表示できない
- 5. DjangoとAjax。無限スクロール・インプリメンテーションの正しい方法
- 6. 無限ループを修正するのが難しい
- 7. 無限ループ:プロセスが正しく終了しない
- 8. 正しいユーザー名とパスワードを入力してください。ORA-01017:無効なユーザー名/パスワード。ログオンが
- 9. パスワードの正規表現は無視されました
- 10. Sitefinityパスワードハッシュ
- 11. JavaScriptの正規表現 - exec無限ループ
- 12. Djangoのパスワードハッシュ
- 13. 64ビットのパスワードハッシュ
- 14. クライアントブラウザでのパスワードハッシュ
- 15. asp.netメンバーシッププロバイダのパスワード有効期限を無効にする
- 16. 正規表現は、私は評価しないと無限にハングアップしない正規表現を、以下のいる無限
- 17. 正規表現特定のパスワードの制限
- 18. sedを使って行を修正し、パスワードハッシュ変数を渡す
- 19. Javascriptで無限大と無限に等しい理由
- 20. メール正規表現は無限ループ
- 21. 正規言語は常に無限
- 22. Java MEのMD5パスワードハッシュ
- 23. VMware vcenterアプライアンスでパスワードの有効期限を無効にしますか?
- 24. パスワード有効期限
- 25. Drupal 7パスワードハッシュ
- 26. 分散アプリ、パスワードハッシュ
- 27. PHPパスワードハッシュと塩
- 28. C#のパスワードが正しく
- 29. Asyncio、無限ループ、無限ループ
- 30. 無限のカウンターの無限リスト
これは正式な文書ではなく、私はセキュリティ専門家ではありませんが、昨年、これについて詳しく書きました。あなたが[ここ](https://michaelhancock.github.io/Hash-and-Salt/index.html)を好きならチェックしてください。それが役に立てば幸い –