Pre Merge pull request !415 from 码龍/changeAdminPassword

pull/415/MERGE
码龍 2024-02-15 14:37:16 +00:00 committed by Gitee
commit 449fcc4cf6
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
3 changed files with 17 additions and 11 deletions

View File

@ -129,7 +129,7 @@ class Admin extends Backend
exception(__("Please input correct password")); exception(__("Please input correct password"));
} }
$params['salt'] = Random::alnum(); $params['salt'] = Random::alnum();
$params['password'] = md5(md5($params['password']) . $params['salt']); $params['password'] = $this->model->encryptPassword($params['password'], $params['salt']);
$params['avatar'] = '/assets/img/avatar.png'; //设置新管理员默认头像。 $params['avatar'] = '/assets/img/avatar.png'; //设置新管理员默认头像。
$result = $this->model->validate('Admin.add')->save($params); $result = $this->model->validate('Admin.add')->save($params);
if ($result === false) { if ($result === false) {
@ -183,7 +183,7 @@ class Admin extends Backend
exception(__("Please input correct password")); exception(__("Please input correct password"));
} }
$params['salt'] = Random::alnum(); $params['salt'] = Random::alnum();
$params['password'] = md5(md5($params['password']) . $params['salt']); $params['password'] = $this->model->encryptPassword($params['password'], $params['salt']);
} else { } else {
unset($params['password'], $params['salt']); unset($params['password'], $params['salt']);
} }

View File

@ -51,7 +51,7 @@ class Auth extends \fast\Auth
$this->setError('Please try again after 1 day'); $this->setError('Please try again after 1 day');
return false; return false;
} }
if ($admin->password != md5(md5($password) . $admin->salt)) { if ($admin->password != Admin::encryptPassword($password, $admin->salt)) {
$admin->loginfailure++; $admin->loginfailure++;
$admin->save(); $admin->save();
$this->setError('Password is incorrect'); $this->setError('Password is incorrect');

View File

@ -4,6 +4,7 @@ namespace app\admin\model;
use think\Model; use think\Model;
use think\Session; use think\Session;
use fast\Random;
class Admin extends Model class Admin extends Model
{ {
@ -15,20 +16,25 @@ class Admin extends Model
protected $updateTime = 'updatetime'; protected $updateTime = 'updatetime';
/** /**
* 重置用户密码 * 修改用户密码
* @author baiyouwen *
* @param int $uid
* @param string $NewPassword
* @return boolean
*/ */
public function resetPassword($uid, $NewPassword) public static function changePassword($uid, $NewPassword)
{ {
$passwd = $this->encryptPassword($NewPassword); $salt = Random::alnum(6);
$ret = $this->where(['id' => $uid])->update(['password' => $passwd]); return self::where('id', $uid)->update([
return $ret; 'salt' => $salt,
'password' => self::encryptPassword($NewPassword, $salt)
]);
} }
// 密码加密 // 密码加密
protected function encryptPassword($password, $salt = '', $encrypt = 'md5') public static function encryptPassword($password, $salt = '', $encrypt = 'md5')
{ {
return $encrypt($password . $salt); return $encrypt($encrypt($password) . $salt);
} }
} }