MySql密码中的特殊字符

时间:2014-01-21 18:17:57

标签: mysql function validation passwords

我们的应用程序仍然存在MySql密码问题。我们想创建一个函数来测试密码有效性,然后再将其呈现给数据库。

任何人都可以指导我参与这两个主题的MySql密码指南:

  1. 密码最大长度(散列存储为16位varchar,这并不意味着16是最大长度)
  2. 哪些标点/特殊字符可以在MySql密码中使用?

3 个答案:

答案 0 :(得分:6)

我正在使用MariaDB 10.0.13 - '\'字符有点特殊。 如果使用PASSWORD('text')定义密码,请确保不要使用'\'。

实施例: 设置用户@ localhost = PASSWORD('\\');

的密码

然后您可以使用单个'\'作为mysql的密码: mysql -u user --password ='\'

答案 1 :(得分:1)

MySQL 5.6.6是第一个有任何密码强度指南或强制执行的版本。

请参阅http://dev.mysql.com/doc/refman/5.6/en/validate-password-plugin.html

但是对于它的价值,从来没有对密码长度或支持的字符进行任何限制。 MySQL存储密码字符串的散列,而不是字符串本身,散列总是存储为十六进制数字的固定长度字符串,而不是明文密码。

您并未具体说明您的应用在使用MySQL密码时遇到的问题。也许如果您编辑问题以更详细地描述这些问题,您可以获得更具体的答案。

答案 2 :(得分:-2)

根据this mail list,默认密码长度为16个字符,但您可以通过alter table命令更改它。

对于特殊字符,没有关于允许的密码字符的特定文档。但是在这个链接上写的是允许所有ASCII字符用于密码。 http://dev.mysql.com/doc/refman/5.6/en/user-names.html