При использовании хэша SHA256, сколько времени занимает хеш? (т.е. как долго должен быть мой mysql VARCHAR?)

Я собираюсь запустить SHA256 на пароле + соль, но я не знаю, как долго сделать мой VARCHAR при настройке базы данных mysql. Что такое хорошая длина?

Ответ 1

A sha256 имеет длину 256 бит - как указывает его имя.

Если вы используете шестнадцатеричное представление, каждая цифра кодирует 4 бита; поэтому вам нужно 64 цифры для представления 256 бит - так что вам нужно varchar(64) или char(64), так как длина всегда одна и та же, не меняя вообще.

И демо:

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

Вы получите:

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

то есть. строка с 64 символами.

Ответ 2

Параметры кодирования для SHA256 256 бит:

  • Base64: 6 бит на char= CHAR(44), включая символ заполнения
  • Hex: 4 бит за char= CHAR(64)
  • Двоичный: 8 бит на байт = BINARY(32)

Ответ 4

Я предпочитаю использовать BINARY (32), так как он оптимизирован!

Вы можете разместить в этом 32 шестнадцатеричных числах от (от 00 до FF).

Поэтому BINARY (32)!

Ответ 5

Будет зафиксировано 64 символа, поэтому используйте char(64)