2011-03-12 137 views
0

說最少6個字符,最多12,也應該是字母數字字符。我如何驗證與PHP相同?並且還需要驗證電子郵件太..我想在密碼字段,以驗證密碼與驗證密碼和電子郵件

+0

設置最大密碼長度並限制您可以輸入的字符類型既糟糕也不安全。請重新考慮除了最小長度以外的任何其他內容! – Charles 2011-03-12 04:15:51

+0

這怎麼可能?一個字母數字字符很難打破..不是嗎? – homlyn 2011-03-12 04:22:44

+1

如果我要暴力破解密碼,我可能會(例如)255個字符進行測試。如果你將其限制爲字母數字,我有62個字符來測試(我認爲)。 – alex 2011-03-12 04:26:23

回答

1

驗證密碼是經常做奇怪的事情,因爲你的存儲應該被散列或加密,所以你從來沒有真正看到原始密碼(因此爲什麼限制字符範圍和最大長度是不必要的)。

將其限制在這些字符只會讓開裂他們更容易(字符集測試)。

您可以驗證使用正則表達式。

preg_match('/^\w{6,12}$/', $str); 

(這也允許下劃線(_))。

更好驗證將是一個最小長度(8個字符在這個例子中),並可能是一個非字母數字字符,這將是...

strlen($str) >= 8 AND preg_match('/\W/', $str) 

可以使用驗證電子郵件...

filter_var($str, FILTER_VALIDATE_EMAIL); 
+0

謝謝,但我如何實現這一點的形式? – homlyn 2011-03-12 04:11:41

+0

@aron假設上面的$ str是用戶輸入的相關輸入。如果你不明白這一點,你應該問一個問題*如何獲得用戶在PHP中的輸入並驗證它?*。我相信在這裏已經有很多問題類似於可以幫助你的問題。 – alex 2011-03-12 04:15:16

+0

形式的作用應該是在PHP代碼來測試這個正在運行的URL。出於安全目的,您至少應該輸入密碼。 – Trevor 2011-03-12 04:15:18