在 php 中转换为 md5 是错误的
convert to md5 is wrong in php
我有一个表格,我从用户那里获取用户名和密码,
我正在将密码转换为 md5。然后我将它插入数据库。在用户登录表单中,我获取密码并将其转换为 md5。然后我比较两个密码。它在某些条件下匹配但如果密码 = p@$$w0rd
则失败。
问题是什么?这个问题的解决方案是什么?
从我的表单到 p@$$w0rd
到 md5 的数据库密码是 b7463760284fd06773ac2a48e29b0acf
并且从登录表单是 e22bb24ca616331cb92a48b712034bc3
注册表中的代码
$password = trim($_POST['password']);
$dpassword = md5($password);
从登录表单
$passwd = md5($password);
$sql = mysql_query("select * from create_dealer where (dealer_email='$user' && password='$passwd')");
如果您使用相同的方法对两个输入进行哈希处理,那么您很可能会在其中一个输入中得到一些空格或一些字符,请确保输入完全相同,然后再对它们进行哈希处理。
您也可以删除 md5 调用以进行测试并查看纯文本密码是否匹配,我打赌不会。可能只是你的 SQL returns 行错了...
引号有问题。
echo md5('p@$$w0rd');// echoes b7463760284fd06773ac2a48e29b0acf
echo md5("p@$$w0rd");// echoes e22bb24ca616331cb92a48b712034bc3
当您使用双引号时,$w0rd
将被视为未定义变量并替换为空字符串。
echo md5("p@$");// echoes e22bb24ca616331cb92a48b712034bc3
我有一个表格,我从用户那里获取用户名和密码,
我正在将密码转换为 md5。然后我将它插入数据库。在用户登录表单中,我获取密码并将其转换为 md5。然后我比较两个密码。它在某些条件下匹配但如果密码 = p@$$w0rd
则失败。
问题是什么?这个问题的解决方案是什么?
从我的表单到 p@$$w0rd
到 md5 的数据库密码是 b7463760284fd06773ac2a48e29b0acf
并且从登录表单是 e22bb24ca616331cb92a48b712034bc3
注册表中的代码
$password = trim($_POST['password']);
$dpassword = md5($password);
从登录表单
$passwd = md5($password);
$sql = mysql_query("select * from create_dealer where (dealer_email='$user' && password='$passwd')");
如果您使用相同的方法对两个输入进行哈希处理,那么您很可能会在其中一个输入中得到一些空格或一些字符,请确保输入完全相同,然后再对它们进行哈希处理。
您也可以删除 md5 调用以进行测试并查看纯文本密码是否匹配,我打赌不会。可能只是你的 SQL returns 行错了...
引号有问题。
echo md5('p@$$w0rd');// echoes b7463760284fd06773ac2a48e29b0acf
echo md5("p@$$w0rd");// echoes e22bb24ca616331cb92a48b712034bc3
当您使用双引号时,$w0rd
将被视为未定义变量并替换为空字符串。
echo md5("p@$");// echoes e22bb24ca616331cb92a48b712034bc3