私はパスワード+ saltでSHA256
を実行するつもりですが、MySQLデータベースをセットアップするときに私のVARCHAR
をどれぐらい長くする必要があるかわかりません。良い長さは何ですか?
その名前が示すように、sha256は256ビット長です。
16進数表現を使用している場合は、各数字は4ビットをコード化します。したがって、256ビットを表すには64桁が必要です。したがって、長さは常に同じで、まったく変化しないため、varchar(64)
またはchar(64)
が必要です。
そしてデモ:
$hash = hash('sha256', 'hello, world!');
var_dump($hash);
あなたにあげるでしょう:
$ php temp.php
string(64) "68e656b251e67e8358bef8483ab0d51c6619f3e7a1a9f0e75838d41ff368f728"
すなわち64文字の文字列です。
SHA256の256ビットのエンコーディングオプション:
CHAR(44)
CHAR(64)
BINARY(32)
BINARY(32)が最適化された方法なので、私はBINARY(32)を使用することを好みます。
(00からFF)までの32桁の16進数で配置できます。
したがってBINARY(32)です。
なぜあなたはそれをVARCHARにするのですか?違いはありません。これは常に64文字です。これは、 オンラインSHA-256電卓の1つ に何かを実行することによって判別できます。
64文字固定ですので、char(64)
を使用してください。