ハッシュ化されたパスワードフィールドに使用するデータタイプとその長さは?

パスワードのハッシュ化がどのように機能するのかわかりませんが(後で実装する予定)、今はデータベーススキーマを作成する必要があります。

パスワードを4~20文字に制限しようと考えていますが、暗号化後のハッシュ文字列は異なる長さになると理解しています。

では、これらのパスワードをどのようにしてデータベースに保存するのでしょうか?

ソルティングについては、このWikipediaの記事が参考になるかもしれません価値ある。これは、ハッシュ値をランダム化するためのデータを追加するというアイデアです。これにより、誰かがパスワードのハッシュ値に不正にアクセスした場合、辞書攻撃からパスワードを守ることができます。

解説 (3)

固定長の文字列(VARCHAR(n)またはMySQLの呼び方)として。 ハッシュは常に例えば12文字の固定長です(使用するハッシュアルゴリズムによります)。つまり、20文字のパスワードは12文字のハッシュになり、4文字のパスワードも12文字のハッシュになります。

解説 (1)

私はいつも、暗号化された文字列の最大文字列長を求め、それをVARCHAR型の文字長として設定するテストをしています。レコードの数にもよりますが、これでデータベースのサイズを大きくすることができます。

解説 (0)