【发布时间】:2016-03-01 11:16:07
【问题描述】:
我正在尝试从外部脚本更新用户密码。 我使用以下脚本添加用户:
$login = $_POST['login'];
$password = $_POST['password'];
//Generate a random string
$salt = genRandomPassword();
//$pass is the encripted password
$pass= md5(stripslashes($password).$salt) .'.'.$salt;
// Insert columns.
$columns = array('name', 'username', 'email', 'password');
// Insert values.
$values = array($db->quote($name) , $db->quote($login),
$db->quote($email), $db->quote($pass));
$query = $db->getQuery(true);
// Prepare the insert query.
$query
->insert($db->quoteName(T_USERS)) //T_USERS = users table
->columns($db->quoteName($columns))
->values(implode(',', $values));
它工作正常,用户可以很好地登录。 但是当我使用以下脚本更新密码时:
//random string
$salt = genRandomPassword();
//$pass is the encripted password
$pass= md5(stripslashes($password).$salt) .'.'.$salt;
$fields = array(
$db->quoteName('password') . ' = ' . $db->quote($pass)
);
$conditions = array($db->quoteName('id') . ' = ' . $session->get('user_id'));
$query = $db->getQuery(true);
$query->update(T_USERS)->set($fields)->where($conditions);
$db->setQuery($query);
$db->execute();
密码更新到数据库,但验证失败。
请帮忙
【问题讨论】:
-
这听起来很可疑。为什么要更新用户的密码? Joomla 3.x 不使用 MD5。它使用 Bcrypt
-
这是密码重置!没啥好说的
-
好吧,在这种情况下,我对 MD5/Bcrypt 的附加评论仍然有效。看到这个:stackoverflow.com/questions/21304038/…