パスワードの保存に使用するハッシュアルゴリズムは、sha256
またはsha512
のどちらが適していますか?
sha512
はsha256
よりも安全であることは知っていますが、いくつかの欠点があるのか、それともsha256
よりも完全に優れているのかと思っていました。
@cthulhuがコメントで述べている点を拡大すると、これに対する正解は「nether」です。 SHA2ファミリーのハッシュアルゴリズムは、パスワードの保存用に設計されていないため、汎用のハッシュアルゴリズムを使用する以外に方法がない場合は、使用しないでください。
引用する この答え これの主な理由は
基本的なハッシュ関数は、たとえハッシュ関数として安全であっても、次の理由からパスワードハッシュには適していません。
それは無塩であり、並行攻撃を可能にします(MD5またはSHA-1のレインボーテーブルは無料で入手できます。自分で再計算する必要すらありません)。
それは速すぎて、技術の進歩により速くなります。最近のGPU(つまり、誰でも購入できる既製のコンシューマー製品)では、ハッシュ率は1秒あたり数十億のパスワードでカウントされます。