7

在 Moodle 平台中的管理员登录密码丢失。

我可以访问 phpMyAdmin。

我去了 mdl_user 表,在那里我可以看到或编辑这个表。

我应该如何进行?我可以将管理员加密的密码和密钥更改为已知密码,还是只添加一个管理员用户更简单?

那会怎么样?

4

8 回答 8

14

仅在 Moodle 2 上测试

您可以从命令行重置任何用户密码。在您的 Moodle 根目录中:

php 管理员/cli/reset_password.php

对于 dev prod 环境,您可能还想禁用密码策略检查(这样您就可以输入一个小而快速的密码)。编辑 reset_password.php 并评论:

// if (!check_password_policy($password, $errmsg)) {
// cli_error($errmsg);

// }

于 2015-04-29T09:50:39.410 回答
12

打开 Moodle 的 config.php 文件,找到定义 $CFG->passwordsaltmain 的行,并复制它的值(它是一长串随机字符)。

在 PHPMyAdmin 中,运行以下查询,并根据需要替换值:

UPDATE mdl_user SET password = MD5(CONCAT('<new password>', '<password salt copied from config>')) WHERE id = <id of admin user>
于 2012-05-10T09:04:25.713 回答
3

生成新 MD5 哈希密码的另一种更快捷、更简单的方法:

  1. 转到http://www.miraclesalad.com/webtools/md5.php并创建一个新密码,例如... wintersnow123~(它看起来像这样:“003df036e1a99aad3eaba7c3ca46723d”,不带引号)。
  2. 复制从您提交的单词生成的 md5 哈希密码(很容易)并准备粘贴它。
  3. 使用 phpMyAdmin,登录到您的 MySQL 数据库。
  4. 导航到用户表(对于 Moodle,它称为“mdl_user”)并浏览数据。
  5. 找到“admin”用户帐户后,单击编辑,然后粘贴您在第 2 步中复制的新密码(“003df036e1a99aad3eaba7c3ca46723d”)。(进入密码字段。)这将替换您之前的内容。
  6. 尝试使用您的管理员用户帐户和新密码(密码:wintersnow123~)登录
于 2016-09-21T18:56:34.727 回答
1

您可以检查源代码并查看哈希是如何计算的。然后你可以用你的新密码和他们的散列函数来做一个新的散列。

我检查了源代码,根据配置,它使用 md5 或 sha1 散列。因此,请检查您的配置并制作您自己的哈希值。

// From the sourcecode:
if ($this->config->passtype === 'md5') {   // Re-format password accordingly
      $extpassword = md5($extpassword);
} else if ($this->config->passtype === 'sha1') {
      $extpassword = sha1($extpassword);
}
于 2012-05-07T23:01:35.807 回答
1

如何使用 MD5 哈希更改密码:

  1. 登录到 phpMyAdmin。cPanel 主机将在 cpanel 中有一个名为 PhpMyAdmin 的数据库实用程序。如果 Moodle 安装在非 cPanel 主机上,请联系托管公司以获取有关如何在服务器上编辑数据库的信息。有关登录 PhpMyAdmin 的更多信息,请参阅“如何在我的控制面板 (cpanel) 中的 PHPMyAdmin 中管理 MySQL 数据库?”一文。

  2. 在 PhpMyAdmin 中,找到名为 mdl_user 的表并选择它。由于 Moodle 有很多表,mdl_user 表可能在第二页。选择第二页。单击 mdl_user 表。

  3. 选择表格后,找到正在编辑的用户的表格行。单击带有铅笔图标的编辑链接。

  4. 密码字段中会有一系列字符和数字。这是一个加密密码,因此无法在数据库中查看。用新的登录密码替换加密文本。

  5. 接下来,在左侧的下拉菜单中,选择 MD5,然后单击 Go。

这也可以用于电子邮件地址和用户名。电子邮件和用户名不需要 MD5 哈希。

于 2013-07-23T07:37:24.510 回答
0

显然 Moodle 1.9.9 版只用 md5 对密码进行一次哈希处理(根本没有盐!!)。

所以唯一要做的就是用你想要的任何密码替换管理员行中的密码,并应用 md5。

于 2012-05-05T22:19:31.200 回答
0

目前 Moodle 在密码中引入了一种盐,以在每个安装中唯一地加密密码。

如果您没有删除或更改访客帐户密码,您可以将其值复制到管理员用户密码以便能够登录。

稍后您可以将其更改为您喜欢的任何内容。

用户帐户存储在 mdl_user 表中。

于 2012-05-07T22:47:26.733 回答
0

对于 Moodle 3.10。

步骤 1 在 Moodle 根目录中创建一个临时 PHP 文件以生成密码。

<?php
include('config.php');
echo password_hash('new_password', PASSWORD_BCRYPT);

现在运行这个 php 脚本来获取 Moodle 框架生成的新密码。

第 2 步: 打开 PHPMyAdmin 并选择 Moodle 数据库。运行此查询。

update mdl_user set password="new_password_hash" where username="admin";

第 3 步: 从 Moodle 根目录中删除临时 php 脚本文件。

于 2021-06-26T12:01:53.207 回答