【发布时间】:2012-01-18 09:42:53
【问题描述】:
我有用户登录,但用户可以使用不区分大小写的方式登录意味着如果您的密码是“测试”,那么用户可以使用“测试”密码登录。
我想避免在我的密码字段上进行这种类型的身份验证。
【问题讨论】:
我有用户登录,但用户可以使用不区分大小写的方式登录意味着如果您的密码是“测试”,那么用户可以使用“测试”密码登录。
我想避免在我的密码字段上进行这种类型的身份验证。
【问题讨论】:
我猜你是在明文存储密码。这不仅非常不安全,而且在大多数情况下也是不必要的。我的建议是将密码存储在两列中,例如:
password_salt VARCHAR(16)
password_hash VARCHAR(40)
在存储新密码之前,获取用户提供的密码 ($clear_password),创建一个随机字符串 ($salt) 并使用两者创建一个哈希 (sha1sum($salt . $clear_password)。存储盐和哈希并丢弃清除密码。
要验证密码,请为给定用户检索存储的盐,生成哈希并查看它是否与数据库中的哈希匹配。
这种技术称为salted passwords。
【讨论】: