2014-01-21 3 views
5

Наше приложение продолжает иметь проблемы с паролями MySql. Мы хотели бы создать функцию для проверки достоверности пароля перед ее представлением в базу данных.Специальные символы в MySql Password

Можно ли направить меня к руководящим принципам для MySql паролей, включающих этих 2 темы:

  1. пароля максимальной длиной (хэш хранится в виде 16 битого VARCHAR, который не означает 16 является максимальной длиной)
  2. который пунктуация/специальные символы могут использоваться в пароле MySql?
+0

Там нет ограничений на символы в пароле. если вы можете сжать символы в sql-запрос, они будут работать - помните, что mysql хранит HASH пароля. символы, составляющие пароль, не имеют значения после создания хэша. Что касается остальных, RTFM: http://dev.mysql.com/doc/refman/5.1/en/password-hashing.html –

ответ

1

MySQL 5.6.6 - это первый выпуск, в котором есть какие-либо рекомендации по обеспечению безопасности паролей или принудительное исполнение.

См http://dev.mysql.com/doc/refman/5.6/en/validate-password-plugin.html

Но для чего это стоит, там никогда не было каких-либо ограничений на длину пароля или символов поддерживается. MySQL хранит хэш строки пароля, а не сама строка, а хеши всегда сохраняются как строка с фиксированной длиной шестнадцатеричных цифр, а не пароль открытого текста.

Вы не знаете, какие проблемы у вашего приложения возникают с паролями MySQL. Возможно, если вы отредактируете свой вопрос, чтобы более подробно описать эти проблемы, вы можете получить более конкретный ответ.

-2

Согласно this mail list, длина пароля по умолчанию составляет 16 символов, но вы можете изменить его командой alter table.

Для специальных символов нет специальной документации о допустимых символах пароля. но по этой ссылке написано, что все символы ASCII разрешены для пароля. http://dev.mysql.com/doc/refman/5.6/en/user-names.html

3

Я использую MariaDB 10.0.13 - символ '\' немного особенный. Если вы определяете пароль с помощью PASSWORD («текст»), избегайте использования «\».

Пример: установить пароль для пользователя @ localhost = PASSWORD ('\\');

Вы можете использовать один «\» для пароля с MySQL: MySQL -u пользователь --password = «\»

Смежные вопросы