今天在做密码验证时出现个bug,当我接口去数据库查询时 wher=a 竟然能查询到A 这就导致用户可以在用户名是AAAA的情况下用 AaAa 或者aaaa登录,经过一堆百度设置什么lower_case_table_names=0 什么的不管用,最后在高性能mysql中发现,
7.9.2的字符集合校对规则
在mysql 4.1后 支持很多字符集和校对规则,可以用 show characterset 和show collation 来查看mysql 支持的字符和校对规则 ,校对规则前缀分别是_cs,_ci_bin 。 经过测试 发现 在用ci结尾时大小写不敏感。用bin时候大小写敏感,修改后验证正常。
参考高性能 mysql 字符集