我在我创建的网站中有一个登录表单。我使用 PHP 验证密码,密码存储在 MYSQL 数据库中。我面临的问题是密码不区分大小写。它接受不带字符的字符考虑这种情况。我正在使用 Kubuntu linux 操作系统
有人能帮忙解决这个问题吗?我应该为 mysql/my.cnf 中的 COLLATION 使用什么值来避免这种情况?或者还有其他解决方案吗?
非常感谢任何帮助。
谢谢。
最佳答案
您的 MySQL 排序规则可能不区分大小写。将存储密码的列更改为区分大小写的排序规则。
一些经验法则:
- 当排序规则以 _ci 结尾时,它不区分大小写。
- 当排序规则以 _cs 结尾时,它区分大小写。
例子:
- utf8_general_ci 不区分大小写。
- utf8_bin 区分大小写
但是,一个重要的注意事项
如果您遇到此问题,可能是密码存储错误。您不应以纯文本形式存储密码,而应存储密码的哈希值,并适当加盐。
然后,当用户登录时,您对其条目进行哈希处理,并将哈希值与您的数据库保存的内容进行比较。当两者相等时,用户可能输入了正确的密码。
关于php - 密码不区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10085098/