密码不检查区分大小写

day*_*mer 2 php mysql

我在我创建的网站上有一个登录表单.我使用PHP验证密码,密码存储在MYSQL数据库中.我遇到的问题是密码不区分大小写.它接受字符而不考虑案例我正在使用Kubuntu linux OS

有谁可以帮忙解决这个问题?.我应该在mysql/my.cnf中为COLLATION使用什么值来避免这个?或者还有其他解决办法吗?

任何帮助是极大的赞赏.

谢谢.

Kon*_*rak 10

您的MySQL 排序规则可能不区分大小写.将存储密码的列更改为区分大小写的排序规则.

一些经验法则:

  • 当归类在_ci中结束时,它不区分大小写.
  • 当排序结束于_cs时,它区分大小写.

例:

  • utf8_general_ci不区分大小写.
  • utf8_bin区分大小写

但是,一个重要的说明

如果您遇到此问题,则可能存储密码错误.您不应该以纯文本格式存储密码,但是您应该存储密码的哈希值,并正确加密.

然后,当用户登录时,您对其条目进行哈希处理,并将哈希值与数据库保存的值进行比较.当两者相等时,用户可能输入了正确的密码.