php:md5不同密码的编码方式相同
我不是php程序员,所以我只知道我在网上查到的关于php:md5不同密码的编码方式相同,php,md5,Php,Md5,我不是php程序员,所以我只知道我在网上查到的关于md5标记的内容 我正在检查php页面中的密码是否匹配。我在php url中发送密码,并使用以下代码检索密码: $u_pswd = md5(trim(strip_tags($_REQUEST['pswd']))); 然后,我运行一个查询以获取用户的密码,以便检查它们是否相同: $usql = "SELECT user_password FROM ft_users WHERE user_email = '".$u_mail."'"; $ures
md5
标记的内容
我正在检查php页面中的密码是否匹配。我在php url中发送密码,并使用以下代码检索密码:
$u_pswd = md5(trim(strip_tags($_REQUEST['pswd'])));
然后,我运行一个查询以获取用户的密码,以便检查它们是否相同:
$usql = "SELECT user_password FROM ft_users WHERE user_email = '".$u_mail."'";
$ures = mssql_query($usql);
$urow = mssql_fetch_array($ures);
if ($urow['user_password'] = $u_pswd) {
// passwords match
} else {
// passwords do not match
}
我的问题是它说密码每次都匹配。例如,如果当前密码为password
,并且我向其发送的密码不正确
,则输出为:
$\u pswd
=64A4E8FAED1A1A1AA0BF8BF0FC84938D25
$urow['user_password']
=64A4E8FAED1A1A1AA0BF8BF0FC84938D25
有人能帮我解决为什么密码不一样却说密码相同的问题吗?不要使用“=”进行比较。“=”将指定一个值,任何表达式“$var=$value”都将计算为true。改为使用“==”
不要使用“=”进行比较。“=”将指定一个值,任何表达式“$var=$value”都将计算为true。改为使用“==”
=用于分配,在您的代码中,您将
$u\u pswd
值分配给$urow['user\u password']
您需要使用==来比较这些值是否相等,以获得所需的结果
$usql = "SELECT user_password FROM ft_users WHERE user_email = '".$u_mail."'";
$ures = mssql_query($usql);
$urow = mssql_fetch_array($ures);
if ($urow['user_password'] == $u_pswd) {
}
else
{
}
希望有帮助。=用于分配,在您的代码中,您将
$u\u pswd
值分配给$urow['user\u password']
您需要使用==来比较这些值是否相等,以获得所需的结果
$usql = "SELECT user_password FROM ft_users WHERE user_email = '".$u_mail."'";
$ures = mssql_query($usql);
$urow = mssql_fetch_array($ures);
if ($urow['user_password'] == $u_pswd) {
}
else
{
}
希望有帮助。您确定在$\u请求['pswd']中获取正确的数据吗这是一种非常不安全的密码存储方式(谷歌“MD5彩虹表”)-如果您运行的是PHP5.5+,请尝试使用
password\u hash()
:您确定在$\u请求['pswd'中获取正确的数据吗这是一种极其不安全的密码存储方式(谷歌“MD5彩虹表”)-如果您运行的是PHP5.5+,请尝试password\u hash()
: