2014-01-21 155 views
5

我們的應用程序繼續存在MySql密碼問題。我們希望創建一個函數在提交給數據庫之前測試密碼的有效性。MySql密碼中的特殊字符

任何人都可以直接我對所有涉及這兩個主題的MySQL密碼準則:

  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密碼時遇到的問題。也許如果你編輯你的問題來更詳細地描述這些問題,你可以得到一個更具體的答案。

3

我使用MariaDB 10.0.13 - '\'字符有點特別。 如果使用PASSWORD('text')定義密碼,請務必使用'\'。

例如: 爲user @ localhost設置密碼= PASSWORD('\\');

然後,您可以使用一個「\」的密碼與MySQL: 的mysql -u用戶--password =「\」