我們的應用程序繼續存在MySql密碼問題。我們希望創建一個函數在提交給數據庫之前測試密碼的有效性。MySql密碼中的特殊字符
任何人都可以直接我對所有涉及這兩個主題的MySQL密碼準則:
- 密碼最大長度(哈希存儲爲16位VARCHAR這並不意味着16是最大長度)
- 其標點/在MySql密碼中可以使用特殊字符?
我們的應用程序繼續存在MySql密碼問題。我們希望創建一個函數在提交給數據庫之前測試密碼的有效性。MySql密碼中的特殊字符
任何人都可以直接我對所有涉及這兩個主題的MySQL密碼準則:
MySQL 5.6.6是第一個有任何密碼強度準則或強制執行的版本。
見http://dev.mysql.com/doc/refman/5.6/en/validate-password-plugin.html
但對於它的價值,也從來沒有在支持的密碼或字符長度的任何限制。 MySQL存儲密碼字符串的散列,而不是字符串本身,散列總是以固定長度的十六進制數字字符串存儲,而不是明文密碼。
您不具體說明您的應用使用MySQL密碼時遇到的問題。也許如果你編輯你的問題來更詳細地描述這些問題,你可以得到一個更具體的答案。
根據this mail list,默認密碼長度爲16個字符,但您可以通過alter table命令更改它。
對於特殊字符,沒有關於允許的密碼字符的特定文檔。但是在這個鏈接上寫着所有的ASCII字符都被允許輸入密碼。 http://dev.mysql.com/doc/refman/5.6/en/user-names.html
我使用MariaDB 10.0.13 - '\'字符有點特別。 如果使用PASSWORD('text')定義密碼,請務必使用'\'。
例如: 爲user @ localhost設置密碼= PASSWORD('\\');
然後,您可以使用一個「\」的密碼與MySQL: 的mysql -u用戶--password =「\」
有在密碼字符沒有限制。如果你可以將字符串壓縮成一個sql查詢語句,他們就會工作 - 記住mysql存儲密碼的HASH。構成密碼的字符一旦產生散列就無關緊要。至於其餘的,RTFM:http://dev.mysql.com/doc/refman/5.1/en/password-hashing.html –