преобразовать несколько пробелов в значение табуляции для хранения пароля

Я не знаю; может быть, это кажется сумасшедшим или совершенно непрофессиональным вопросом новичка. Однако стоит ли преобразовывать четыре пробела в табуляцию для поля пароля?

Вот что я хочу сделать — всякий раз, когда пользователь вводит пароль в поле пароля; Я хочу обрезать левый и правый пробел (если есть)! и в середине строки, если пользователь поставил четыре пробела, преобразовать его в значение ключа TAB (или наоборот ??), а затем хэшировать значение ..

Я хочу упомянуть, что поле пароля будет принимать пробелы, и поле пароля не ограничивается только английским набором символов.

Это хорошая практика?

0

Решение

Можно обсудить урезание пароля, я сам думаю, что это хорошая идея.

Однако изменение пароля не принесет вам никакой пользы и даже может быть вредным. Предполагая, что вы правильно хешируете пароли перед их сохранением, вы можете видеть изменение как дополнительную часть алгоритма хеширования. Какие бы изменения вы ни делали, энтропия пароля не может быть увеличена алгоритмом, пароль не может стать сильнее. С другой стороны, это может уменьшить энтропию. Простой пример:

Один и тот же пароль, один раз с 4 пробелами, один раз с одной вкладкой, приведет к тому же хеш-значению.

Поэтому, если хотите, пользуйтесь сокращенными паролями для удобства, но оставляйте содержимое пароля без изменений.

0

Другие решения

Обрезание начала и конца, безусловно, хорошая практика.

Однако преобразование пробельных символов во вкладку было бы очень плохой идеей. Как пользователь сможет войти в систему? Когда они нажимают кнопку Tab в поле пароля, браузер перемещает фокус из поля пароля к следующему элементу управления на странице. У них нет возможности набрать вкладку в пароле!

Оставьте все пробелы в середине пароля, как они есть.

1

здорово, что вы планируете удалить начальные / конечные пробелы, однако я не вижу смысла менять эти пробелы на вкладки, так как это всего лишь дополнительный шаг перед их шифрованием.
Если нет веских оснований для того, чтобы что-то вкладывать, то лучше … не ставить
(редактировать: я предполагаю, что такая же проверка будет на месте при входе в систему)

(PS: этот тип вопроса не совсем подходит для StackOverflow, так как он включает в себя личные мнения)

-1