回答
如果没有其他原因,能够看到别人的密码是非常糟糕的做法,因为实际上每个人都使用相同的密码进行不同的服务/站点/登录。所以这在我看来是一个很大的问题。
更重要的是,您应该始终在数据库中保持密码加密。加密密码(SHA,MD5,crypt或其他形式的散列)的通常方式不是双向的,所以一旦密码被输入并加密,它就不能被解密。当用户再次输入密码时,应用程序会执行什么操作,密码用户键入的内容,并将生成的哈希与存储在数据库中的哈希进行比较。这样可以防止任何用户看到纯文本密码,并且如果您有数据泄漏,只要您需要“安全”密码,就不会有太大用处。
密码应该有一个最小允许的大小,通常是8个或更多的字符(使得发现它们更难),并且最好由小写,大写,数字和特殊字符组成。密码越长越好。密码短语比拥有大量不同案例,数字和特殊字符的小密码更安全,因为它们需要更长的时间才能完成强力操作。
至于能够改变他人的密码,这是可取的,是的,因为用户一直放弃他们的密码,你需要一种方法来重置他们,或改变他们。如果需要,也可以是禁用用户帐户的快速肮脏方法。
定期更改密码可以长期提高安全性,因为可能被压缩的密码在更改时将不可用,但它们会带来更多忘记密码和用户抱怨的负担。
千万不要通过电子邮件发送密码,并且密码恢复功能也是安全等级中较低的一项,但安全性总是与实际使用一起保持平衡。
临时更改首次登录密码也很有趣,因为它会降低对支持的使用并阻止用户转到管理员或通过电子邮件(permnanent密码)发送密码。
对于临时密码总是使用好的随机密码,并且从不使用user1234或surname123或任何公共信息的组合,因为它非常容易获得并且可以被任何知道形成规则的人使用。
很好的答案。所以基本上,只让经理更改密码,重置密码或禁用用户帐户? –
澄清:哈希不是加密。 MD5,SHA等,不要执行任何加密。你不把一个密码与一个散列进行比较(你可以,但它基本没有意义),你可以将一个散列与一个散列进行比较。除此之外,优秀的答案! –
他们绝对不应该。事实上,你不应该以明文存储用户的密码。查看单向散列,例如scrypt或PBKDF2,以安全地(*)存储密码。另见https://security.stackexchange.com/questions/4789/most-secure-password-hash-algorithms
(*)没有真正的证据表明任何哈希算法是100%安全的。
- 1. ServiceStack CustomAuthenticationMvc管理员密码?
- 2. 设备管理员密码
- 3. splunk管理员密码
- 4. Glassfish V4管理员密码
- 5. Couchbase管理密码与集群管理员密码
- 6. Wso2 - 带加密的管理员密码
- 7. 如何加密管理员密码?
- 8. 好习惯:如何在android/java中处理密钥库密码?
- 9. 使用API管理i18n的好习惯是什么?
- 10. 安装后的OpenLDAP管理员密码
- 11. Django的管理员忘记密码
- 12. 最好的SQLite管理员
- 13. 迷失Microstrategy管理员密码?
- 14. Artifactory管理员密码重置
- 15. 忘记Apache OFBIZ管理员密码
- 16. 重置Informatica管理员密码
- 17. 如何重置Django管理员密码?
- 18. 如何重置ejabberd管理员密码?
- 19. Umbraco:管理员密码检索
- 20. EC2 Windows - 获取管理员密码
- 21. 脚本更改管理员密码
- 22. 如何更改sonarqube管理员密码
- 23. JTextArea管理员密码控制
- 24. Ruby on Rails管理员密码
- 25. 重置Oracle Apex管理员密码
- 26. 管理员密码不存在
- 27. VBScript来更改Windows管理员密码
- 28. XAMPP管理员密码重置
- 29. 声纳管理员密码丢失
[security.se]可能是一个更好的地方。我会说管理者应该:不能看到密码,但他们应该有能力来更改密码。 – Shaz
密码应该以base64编码的单向散列存储,而不是以纯文本形式存储。没有人应该能够查看密码,只能改变它。 – Amy
这个问题似乎是无关紧要的,因为它不是关于编程的*** ...... –