我有用户登录,但用户可以以不区分大小写的方式登录意味着如果您的密码是'测试',那么用户可以用'TEST'密码登录。
我想在我的密码字段中避免这种类型的身份验证。如何使用区分大小写的MySQL密码字段?
8
A
回答
13
5
我想你是在清楚地存储密码。这不仅非常不安全,在大多数情况下也是不必要的。我的建议是密码储存在两列,如:
password_salt VARCHAR(16)
password_hash VARCHAR(40)
存储新密码之前,采取由用户($clear_password
)提供的密码,创建一个随机字符串($salt
),并同时使用,以创建哈希(sha1sum($salt . $clear_password
)。存储salt和hash并丢弃清除密码。
要验证密码,请为给定用户检索存储的salt,生成散列并查看它是否与数据库中的散列匹配。
该技术被称为salted passwords。
相关问题
- 1. Linq到SQL查询密码字段区分大小写
- 2. MySQL不区分大小写
- 3. 如何在sql server08中检查区分大小写的密码
- 4. 使htpasswd用户名和密码不区分大小写敏感
- 5. mysql区分大小写的字段名查询
- 6. 区分大小写的MySQL如查询
- 7. 如何在MySQL的instr()中使用区分大小写?
- 8. 如何区分大小写?
- 9. 使区分大小写不敏感的区分大小写表
- 10. 区分大小写区分大小写还是全大写?
- 11. 如何使lucene不区分大小写
- 12. 如何使jquery不区分大小写?
- 13. 如何使Oracle不区分大小写
- 14. 如何使preg_quote不区分大小写?
- 15. 如何使SQL区分大小写
- 16. 如何使ntfs区分大小写
- 17. 如何区分使用Django admin“prepopulated_fields”的大小写字母?
- 18. Vaadin:如何使所有片段的网址区分大小写
- 19. 如何使PHP/MySQL中的SELECT不区分大小写?
- 20. MySQL的区分大小写插入
- 21. PHP/MySQL的搜索 - 区分大小写
- 22. MySQL查询的WHERE区分大小写
- 23. mysql的,区分大小写通过笨
- 24. MySQL中区分大小写的查询
- 25. MySQL中不区分大小写的REPLACE?
- 26. MySQL不区分大小写的搜索?
- 27. MySQL - 不区分大小写的搜索
- 28. 从FormsAuthentication.Authenticate删除用户名/密码区分大小写
- 29. 区分大小写的区分大小写的
- 30. 区分大小写File.equals区分大小写的文件系统
感谢您的快速响应,它的安全风险的好主意 – SKu
@SKu请首先阅读 - http://codahale.com/how-to-safely-store-a-password/。使用sha1是不够的。 –
有利于安全,但不必对问题做任何事情? – joel