2011-03-12 86 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