我正在写一个PHP脚本,我想知道如果我应该允许用户密码空格。我使用sha1()
来散列密码,并且它似乎对包含空格的密码很好。不过,我注意到很多主要网站都不允许密码包含空格。是否有这样的理由,还是允许它们?允许在密码空间
允许在密码空间
回答
你应该绝对允许在密码空格。许多人更喜欢使用通过短语,并通过禁止空间,你正在努力为他们的生活没有任何好处。
除了允许使用密码而不是密码之外,还应该鼓励他们,因为他们是more secure(好吧,我承认我写这个的一半原因是放在xkcd链接中)。
+1此外,空格被视为特殊字符,这被认为是更好的安全性。 – 2012-01-16 01:25:05
特殊字符对常规字符没有真正的好处。鼓励他们是因为他们扩大了字符空间(可能性/组合的数量)。 – MrGlass 2012-01-16 01:30:50
有没有很好的理由有史以来限制用户可以在他们的密码中使用的字符。永远。
我不明白为什么会有。如果它没有给你的实现带来任何问题(它不应该),它所要做的就是将可用的字符空间扩大1,并且使得破解更加困难。
只要您的哈希机制能够每次对它们进行相同的哈希操作,限制密码中允许的字符就毫无意义。例如,如果您打算从使用不同字符编码的系统进行密码检查,例如在PHP中对密码进行哈希处理并尝试使用Java进行检查,则可能不希望对多字节字符进行哈希处理。
- 1. 允许SqlMembershipProvider密码空间
- 2. Devise在密码重置期间允许空白密码
- 3. 允许密码
- 4. JavaScript密码功能允许空格
- 5. Nginx的允许密码TLS_RSA_WITH_3DES_EDE_CBC_SHA
- 6. WPF TextBox no允许空间
- 7. IRI允许有空间吗?
- 8. JS验证允许空间
- 9. 允许整数和空间
- 10. MonoTouch:命名空间允许
- 11. 密码验证将不允许在php中的空格
- 12. ASP.net不允许名在密码字段
- 13. 允许在iOS7中保存密码
- 14. 我如何使不允许列允许空和允许空列不允许空
- 15. 正则表达式不允许在出发空间,并允许在中间
- 16. 允许在编码功能中的空间(Sage ShiftCryptosystem)
- 17. 不允许空格的密码验证的正则表达式
- 18. 如何在changepassword中允许当前密码为空或新密码为空登录控制ASP.net
- 19. 允许使用htaccess的密码
- 20. 密码功能不允许访问
- 21. 允许用户没有密码?
- 22. 允许用户更改SVN密码
- 23. Twitch Api - 不允许使用密码
- 24. 为什么不允许密码验证?
- 25. 允许mysql无密码连接
- 26. MVC BCrypt.Verify允许不同的密码
- 27. 允许特殊字符输入密码
- 28. ;允许用户更改密码?
- 29. 设计,允许用户更改密码
- 30. 允许空白
没有实际的安全理由来否认空格。这种限制是几十年前写得不好的系统的一个毫无意义的遗产,并且只是阻止人们使用更令人难忘的密码短语。让人们使用任何他们想要的。 – 2012-01-16 01:23:51
哪些“主要网站”不允许密码包含空格?我已经看到这样的用户名限制,但从来没有密码... – 2012-01-16 01:25:07
你应该允许空格。你还应该允许 - *鼓励真的* - 使用通行短语。您可以享受[this xkcd](http://xkcd.com/936/)。哦,请使用bcrypt或scrypt,或者更好的是,可以使用现有的库来完成所有功能。 (普通的sha1不足以输入密码,太容易暴力了。) – 2012-01-16 01:25:56