PHP比较从java接收的值
所以我正在处理这两个PHP文件,PHP比较从java接收的值,java,php,mysql,json,Java,Php,Mysql,Json,所以我正在处理这两个PHP文件,login.PHP和DB_Functions.PHP 其中有一个特定脚本,它从应用程序接收密码和电子邮件,发现该特定用户使用给定的电子邮件,并将所有用户详细信息存储在$user数组中,然后将其传递给login.php,以检查输入的密码是否正确,我尝试过散列密码,因为在数据库上它是用64位加密的 这是login.php(问题可能出在if($user[7]=$password)中,它不起作用) 我假设问题出在$user[7]=$this->checkhashSSHA(
login.PHP
和DB_Functions.PHP
其中有一个特定脚本,它从应用程序接收密码和电子邮件,发现该特定用户使用给定的电子邮件,并将所有用户详细信息存储在$user
数组中,然后将其传递给login.php,以检查输入的密码是否正确,我尝试过散列密码,因为在数据库上它是用64位加密的
这是login.php
(问题可能出在if($user[7]=$password)
中,它不起作用)
我假设问题出在$user[7]=$this->checkhashSSHA($asalt,$password)代码>行。
期待解决方案。问题出在这里
if($user[7] == $password){
...
}
您正在将散列密码($user[7]
)与用户的原始密码($password
)进行比较,两者不匹配。首先,对原始密码执行与类方法相同的哈希运算(checkhashSSHA($salt$password)
),然后进行比较,如下所示:
解决方案:
// assuming that checkhashSSHA is public method
$hashed_password = $db->checkhashSSHA($user[6], $password);
if($user[7] == $hashed_password){
// password match
}
// assuming that checkhashSSHA is public method
// no need to hash the password again
// $hashed_password = $db->checkhashSSHA($user[6], $password);
// $user[5] contains user's hashed password
// $user[7] contains the hashed password from user's input
if($user[5] == $user[7]){
// password match
}
重新编辑:
// assuming that checkhashSSHA is public method
$hashed_password = $db->checkhashSSHA($user[6], $password);
if($user[7] == $hashed_password){
// password match
}
// assuming that checkhashSSHA is public method
// no need to hash the password again
// $hashed_password = $db->checkhashSSHA($user[6], $password);
// $user[5] contains user's hashed password
// $user[7] contains the hashed password from user's input
if($user[5] == $user[7]){
// password match
}
如果你认为那条线是问题所在。。。为什么不var_dump($user[7])代码>和变量转储($password)代码>?这会返回这些变量的值吗?如果会的话,我在哪里能看到呢?(PHP初学者)$user[7]是散列的,因为在DB_函数中,它被散列并作为原始密码发送,@DanielNetzer$user[7]
包含散列密码。查看DB_Function.php文件,$user[7]=$this->checkhashSSHA($asalt,$password)代码>。请尝试我建议的解决方案。非常感谢,Rajdeep,我刚刚意识到,对密码进行哈希运算时,它不会对密码进行解密,而是使其成为可读且可比较的密钥。非常感谢。这带来了一个新的问题,似乎不管我在用户界面中输入什么密码,用户都可以登录。。。看起来他们正在对数据库中的相同值进行哈希和比较。您使用哪种方法对密码进行哈希检查hashSSHA
或hashSSHA
?