Используете «текстовый» тип данных для хранения хэша пароля в MySQL? - PullRequest
0 голосов
/ 09 марта 2019

Нет, этот вопрос не является дубликатом многочисленных «Какой самый лучший тип данных MySQL для хранения паролей».

Мои хеши паролей в настоящее время создаются с использованием pbkdfSync для node.js, и у меня установлено значение вывода 128 (какими бы ни были байтовые биты), и он выталкивает хэш 256 символов.

Вы можете спросить, в чем проблема? Ну вот и я так думал. до того, как я получил сообщение: «Значение слишком длинное для пароля столбца» при использовании VARCHAR.

Многочисленные поиски в Google говорят, что ограничение на количество символов в varchar составляет 65 535 символов, но по некоторым причинам для меня это всего лишь 255 , а хэш на один символ больше этого.

Итак, вопрос здесь: Должен ли я изменить размер выходного хэша, чтобы я мог использовать тип данных CHAR, или я должен просто продолжать использовать тип данных TEXT? Или есть способ получить ограничение в 65 535 символов для символов char и varchar?

Я использую последнюю версию MySQL.

Редактировать: Это еще не все, я шифрую хэши и соли, и зашифрованный вывод составляет 512 символов для хэша и 344 для соли!

1 Ответ

0 голосов
/ 11 марта 2019

Вы можете изменить тип своего столбца на VARCHAR (512), что позволит вам хранить более 255 символов в вашем столбце (на самом деле 512).Здесь можно использовать значение от 1 до 8000 или VARCHAR (MAX) для наибольшего (в случаях, когда длина записей данных сильно варьируется).

В вашем случае попробуйте что-то вроде этого:

`ALTER TABLE name_of_your_table 
 CHANGE COLUMN password password VARCHAR(512) NOT NULL DEFAULT '';`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...