我正在尝试建立一个登录系统,但我无法解决一个问题:PHP 正在给我另一个输出 md5(); 比 MySQL...
例如,在 PHP 中:
$password = md5("brickmasterj");
return $password;
回报:
3aa7b18f304e2e2a088cfd197351cfa8
但是 MySQL 等价物给了我一个更短的版本:
3aa7b18f304e2e2a08
有什么问题?在检查密码时如何使用它?
我猜是你表列长度的问题,将密码字段的长度设置为至少 32
MySQL 不可能返回长度小于 32 的它。如果您执行类似 的简单查询SELECT md5('brickmasterj')
,您会看到。现在您很可能将值插入到不够宽的列中。
您的数据库字段长度是否为 32 个字符?您是否正在使用 mysql 的 md5 写入数据库?
哈希大小(如果始终固定)。在您的情况下,哈希大小为 128 位。当转换为 ascii 字符串时,它将是一个仅包含十六进制数字的 32 个字符的字符串。因此,如果您要存储可变字符,则长度应至少为 32 示例:password varchar(32)
应该放入 mysql 表中,然后您可以使用 php 调用
select password from table where password =md5($password);