-5

彻底搜索了我的代码后,我可以确定此错误的唯一原因是我用于将字符串转换为 MD5 的技术无效。但是我找不到另一种方法。

$username = $_POST['username'];
$password = $_POST['password'];
$repassword = $_POST['repassword'];
if( $password=$repassword ) {
    $con=mysql_connect("localhost", "root", "");

    if( $con == true ) {
        mysql_select_db("movedb", $con);
        //$newpassword = mysql_real_escape_string(md5($_POST['password']));
        $query = "UPDATE user SET password=MD5('$password') WHERE username='$username'";
        // $query = "UPDATE user SET password='$newpassword' WHERE username='$username'";
        $result = mysql_query($query, $con);

        if( $result == true ) { 
            echo "Successfully saved your message";
        } else {
            echo mysql_error();
        }   

        mysql_close($con);
    } else {
            echo "Cannot connect to the database";
    }

} else {
    echo "Passwords do not match!";
}

关于如何从 PHP 更新此 MD5 值的任何想法

4

4 回答 4

1
$password = md5($password);
$query = "UPDATE user SET password='".$password."' WHERE username='".$username."'";

使用 PHP 支持的 md5 哈希。

于 2012-07-24T11:41:13.997 回答
1

可能导致问题的一个问题是 MySQL 和 PHP 在加密时使用不同的默认盐。这意味着生成的字符串会有所不同。所以你必须使用 PHPMySQL 来加密,而不是两者的混合。

其次,MD5 已经被其他更好的加密算法所取代。您可以考虑使用其中一种来提高安全性。查看 PHP 的crypt()函数。

于 2012-07-24T11:47:27.490 回答
1

检查密码:

SELECT * FROM 'user' WHERE username='bob.jhonny' AND pass=MD5('oldPassword');

更新:

UPDATE 'dlp_contatcs'.'user' SET 'Pass'=MD5('NewPassword') WHERE 'Username'='bob.jhonny';

于 2012-07-24T11:42:41.050 回答
0

警告:

请不要使用mysql_*函数来编写新代码。它们不再被维护并且社区已经开始了弃用过程。看到红框了吗?

相反,您应该了解准备好的语句并使用PDOMySQLi本文应该提供一些有关决定使用哪个 API 的详细信息。对于 PDO,这里有一个很好的教程

您可以使用 PHP 计算md5()哈希并将其存储到变量中,然后将该变量放入数据库中。只需确保md5在检查数据库时进行相同的转换(在 PHP 代码主体中)。

你应该修好这条线if( $password=$repassword )。您需要两个或三个=标志来if检查某些东西。正确的路线是if( $password === $repassword ).

// ...
$newpassword = md5($_POST['password']);
$result = mysql_query('UPDATE user SET password="' .mysql_real_escape_string($newpassword). '" WHERE username = "' .mysql_real_escape_string($username). '"', $con);

if ( $result === TRUE )
{
    echo "Successfully saved your message.";
// ...
于 2012-07-24T11:46:39.380 回答