回答:
sha256は256ビット長です-その名前が示すように。
SHA256は16進表現を返すので、4ビットは、したがって、あなたが必要なので、256ビットは64進文字を表すであろう、(ASCIIのためのように、8の代わりに)各文字をエンコードするのに十分でvarchar(64)
あっても、またはchar(64)
長さが常に同じであるように、 、まったく変化しません。
そしてデモ:
$hash = hash('sha256', 'hello, world!');
var_dump($hash);
あなたに与えるでしょう:
$ php temp.php
string(64) "68e656b251e67e8358bef8483ab0d51c6619f3e7a1a9f0e75838d41ff368f728"
つまり、64文字の文字列です。
varchar(65)
は、リーディングに使用することをお勧めし!
ます。
SELECT length(to_base64(unhex(sha2('say hello to my little friend',256))))
、元の文字列の長さがどうであれ、常に44です。
最適化された方法であるため、BINARY(32)を使用することを好みます!
32桁の16進数(00からFF)に配置できます。
したがって、BINARY(32)!
UPDATE...SET hash_column=UNHEX(sha256HexString)
。次に、それを取得するときに、あなたSELECT HEX(hash_column) AS hash_column
。
なぜVARCHARにしますか?それは変わりません。常に64文字です。これは、オンラインのSHA-256計算機のいずれかを実行することで決定できます。
SHA-*
パスワードをハッシュするのに使用する前に、まずこれを読んでください。