283

パスワード + ソルトで実行する予定ですが、MySQL データベースをセットアップするときにSHA256どのくらいの長さになるかわかりません。VARCHAR良い長さとは?

4

5 に答える 5

405

sha256 は、その名前が示すように 256 ビット長です。

sha256 は 16 進数表現を返すため、各文字をエンコードするには (ASCII のように 8 ビットではなく) 4 ビットで十分であるため、256 ビットは 64 個の 16 進数文字を表すため、長さが常に同じであるため、 varchar(64)、または さえも必要です。 char(64)、まったく変化しません。

そしてデモ:

$hash = hash('sha256', 'hello, world!');
var_dump($hash);

あなたに与えます:

$ php temp.php
string(64) "68e656b251e67e8358bef8483ab0d51c6619f3e7a1a9f0e75838d41ff368f728"

つまり、64 文字の文字列です。

于 2010-02-10T23:04:22.787 に答える
78

SHA256 の 256 ビットのエンコード オプション:

  1. Base64: 1 文字あたり 6 ビット =CHAR(44)パディング文字を含む
  2. 16 進数: 1 文字あたり 4 ビット =CHAR(64)
  3. バイナリ: 1 バイトあたり 8 ビット =BINARY(32)
于 2015-03-05T02:34:14.847 に答える
24

なぜそれをVARCHARにするのですか?変わりません。これは常に64文字であり、オンラインのSHA-256計算機の1つに何かを実行することで判別できます。

于 2010-02-10T23:01:48.840 に答える
7

64文字固定となりますので、char(64)

于 2012-10-13T18:34:00.793 に答える