使用への利点があります:グローバル塩は、サーバー上の設定ファイルである間ハッシュ塩複雑
sha1($long_unpredictable_randomly_generated_salt.$password.$global_salt)
sha1(sha1($username).$password.$global_salt)
以上のユニークな塩は、明らかに、データベースに格納されます。
私は塩のpurpsoeがちょうどユニークで、事前計算されたハッシュテーブルを防止することを知っている..私はsha1($username)
によって生成された長いハッシュの理由は見ていない。しかし、セキュリティが非常に重要であるので、
私はusernameとsha1(username)の違いは、サーバーとデータベースの両方がハッキングされた場合には重要だと思います。 たとえば、すべての文字の組み合わせの長さが15までの虹のテーブルが生成された場合(グローバルソルトが追加された場合)、username + passwordの合計長が15以下のすべてのハッシュが解決される可能性があります。私はsha1(username)を使用する場合、これは動作しません、彼らは約30 +の長さまですべての組み合わせのための虹のテーブルを生成する必要があるでしょう(かなりlongeRを取る) – sil
実際には、エントロピーの余分なビットとしてではなく、ルックアップテーブルに対するヘッジとして塩を使用する。個人的には、私は静的に保存されたハッシュを公に知っているものとみなし、とにかくエントロピーには依存しないと考えています。 –
ユーザ名のハッシュは、ユーザ名が秘密でない限り、本当にランダムではありません。 – Marcin