使用php创建一个包含中文字符的密码系统

我遇到了与其他中文字符验证中文字符的问题,例如我正在创建一个简单的密码脚本,它从数据库获取数据,并通过get获取用户输入.

我遇到的问题是出于某种原因,即使你回应它们时字符看起来完全相同,我的if语句仍然认为它们是不同的.

我已经尝试使用htmlentities()函数对字符进行编码,来自数据库的密码很好地编码,给我一个工作’& #35441;” (我在其中放了一个空格来阻止它转换为汉字!).

一个用户输入值给了我一大堆有趣的角色.我认为唯一必须打破它的是它以不同的方式编码,因此PHP认为它是2个完全不同的字符串.

有人有什么想法吗?
提前致谢,

编辑:
感谢快速响应人员,我会考虑将数据库编码设置为UTF-8,但是目前,数据库的结果不是问题,他们使用htmlentities正确编码,这是我得到的结果$_GET导致问题.

干杯,

解决方法:

对于密码,我的建议是不做直接比较,因为这意味着你要以明文形式存储密码.在存储它们之前,至少要通过像MD5或SHA这样的哈希(最好还有一个salt值)来运行它们.然后你只需要比较哈希值,这通常是十六进制值,所以不应该导致任何编码问题.

对于非密码值,它听起来像您的数据库PHP不是相同的编码,因此它们不能正确匹配.如果MysqL以你想要的方式存储它们,让它进行比较(而不是让它首先返回值),这应该避免其中一个传递通过编码更改,这似乎是问题.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...