php - 使用php创建汉字密码系统

标签 php utf-8 html-entities

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

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

我尝试使用 htmlentities() 函数对字符进行编码,数据库中的密码编码得很好,给了我一个有效的 '& #35441;' (我在其中加了一个空格以阻止它转换为汉字!)。

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

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

编辑:
感谢快速响应的家伙,我将四处查看将数据库编码设置为 UTF-8,但是目前,数据库的结果不是问题,它们使用 htmlentities 正确编码,这是我从中得到的结果导致问题的 $_GET。

干杯,

最佳答案

对于密码,我的建议是不要进行直接比较,因为这意味着您以明文形式存储密码。至少在存储它们之前通过像 MD5 或 SHA 这样的散列(最好也使用盐值)运行它们。然后您只需比较哈希值,这些值通常是十六进制值,因此不会导致任何编码问题。

对于非密码值,听起来您的数据库和 PHP 不在同一编码上,因此它们没有正确匹配。如果 MySQL 以您想要的方式存储它们,请让它进行比较(而不是让它首先返回值),这应该避免其中 1 次通过编码更改,这似乎可能是问题所在。

关于php - 使用php创建汉字密码系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2637494/

相关文章:

php - 如何在 PHP 中迭代 UTF-8 字符串?

c - 在不使用第 3 方库的情况下基于 C 中的 char* 的多平台 Unicode 处理?

python - Beautiful Soup 将标准普尔变成标准普尔; AT&T 变成 AT&T; ?

php - 更改codeigniter中的密码模块

javascript - Jquery的表单序列化发送重复信息

css - 使用@import 和@charset 一起导入CSS

php - 将 html 实体转换为 html 字符的最佳方法

json - 如何在 Swift 中解码 HTML 实体?

php - 将 wordpress 网站移动到不同的 url

php - Python 像 PHP 一样设置错误报告级别