パスワードのハッシュに使用される種類のアルゴリズムには、辞書攻撃に利点または欠点がありますか?つまり、SHA256、MD5などですか、それとも攻撃者が使用する辞書だけですか?
私が理解できる限り、ハッシュアルゴリズムは、リッパーであるJohnのような辞書攻撃に対する保護には何の影響もありません。
ブルートフォースディクショナリ攻撃では、アルゴリズムの速度は基本的に、特定の時間内にチェックできるパスワードの数を定義します。チェックできるパスワードの数が少ないほど、アルゴリズムがブルートフォースからよりよく保護されます。これが、プレーンなMD5やSHA256とは異なり、適切なパスワードハッシュアルゴリズムが故意に遅い理由です。
さらに、適切なパスワードハッシュはランダムなソルトを使用するため、事前に計算されたパスワードとハッシュ間のマッピングを再利用することは不可能です。
詳細は パスワードを安全にハッシュする方法 を参照してください。
ハッシュアルゴリズムは、攻撃者が1分間に試行できるハッシュの数(速度)を決定できます。
クラックされたハッシュの成功率は、ディクショナリの "品質"と変異ルール、およびユーザーパスワードの強度によって決まります。
より高速なアルゴリズムは、攻撃者がより大きな辞書を使用したり、より広いルールを使用したりする可能性があり、同じ時間でより多くのパスワードをクラックする可能性が高まります。
オフライン攻撃(ブルートフォースとディクショナリ)に対する最良の保護は、スクリプト、pbkdf2、bcryptなどの時間のかかるハッシュアルゴリズムを使用することです。