2017-10-03 3 views

答えて

3

あなたは正しいですか?ハッシュは一般にハッシュ値が表すデータよりも短いため、2つの異なる入力が同じハッシュを生成することがあります。これをハッシュ衝突と呼びます。この機会を減らすには、より良いハッシュアルゴリズムを選択してください。 良いハッシュアルゴリズムが常に変化しているとみなされる基準は、this S.O.を確認してください。役職。

別の理由でプレーンハッシュをデータベースに保存することは安全ではありません。一般的なハッシュアルゴリズムを使用して完成したハッシュのオンラインリストがあります。したがって、これらのリスト(虹のテーブルと呼ばれる)とハッシュされたパスワードをデータベースに取り込み、レインボーテーブルで単純な検索を実行することで、どのパスワードに対応するハッシュを作成することができます。

多くのユーザーが最も一般的でない不正なパスワード(たとえば、受理者)の1つを選択するため、これは大きな問題です。これに対する解決策は、ハッシュと塩と呼ばれています。ハッシュする前に、最初にランダムな文字列をパスワードに追加します。つまり、同じパスワードのうち2つであっても、データベースには異なるハッシュが発生します。これは、herehereの方がよく説明されています。

一般的に、このコードを自分で書くのは悪い考えです。 FacebookまたはGoogleのような別のサービスで認証を試してください。彼らのコードは、個々の開発者が思いつくものよりも優れたテストと設計が可能です。

+0

これは正式な文書ではなく、私はセキュリティ専門家ではありませんが、昨年、これについて詳しく書きました。あなたが[ここ](https://michaelhancock.github.io/Hash-and-Salt/index.html)を好きならチェックしてください。それが役に立てば幸い –

関連する問題