Manual:Resetting passwords/zh

在一些情况下，用户可能需要重置其密码. 例如，用户忘记了自己的密码，或是遇到某种可能会泄露其密码的安全漏洞. 大多数情况下，可以使用“通过邮件获得新密码”来重置密码.

对于忘记用户名或是无法查看邮箱的用户，可能需要管理员或系统管理员进行一些额外操作.

使用 Special:UserLogin
如果您知道自己账户的名称，则可以使用登陆界面上的“忘记密码”功能. 要使用此功能，请在维基上访问 Special:UserLogin 这个页面，填入用户名并点击“通过电邮发送新密码”按钮. 一个临时密码会发送到该用户名绑定的电子邮箱，一份重置密码的指导说明也会一同发送. This will happen even if the email address has not been confirmed.

根据电邮地址寻找用户名
如果您指导一个用户的电邮地址，但不知道用户名，那么您可以通过在 MediaWiki 数据库中请求 表，来寻找关联的用户名. 例如，要寻找 对应的用户名，可运行以下请求：

使用 changePassword.php 维护脚本
维护脚本使得系统管理员可以更改一个账户的密码. 详细方法请见 如果您已熟悉维护脚本，在 子目录下运行如下指令：

小心： 系统管理员不应得知未加密的用户账户密码. 用户可能会在多个网站上使用相同的密码. 如果这些网站上的其中一个账户发生密码泄露，那么就可以怀疑系统管理员泄露了密码. 推荐使用“邮寄新密码”以迫使用户自行重置密码，或设置一个稍后可以立即更改的临时密码.

使用 Special:PasswordReset
Special:PasswordReset允许具有“editmyprivateinfo”权限的用户重置本地安装的 MediaWiki 的密码.

使用方法如下：


 * 在框中输入想要重置密码的用户名，并点击“重置密码”
 * 一个自动生成的密码会通过电子邮件发送给用户

要在链接中自动插入用户名，使用.

Use the resetpassword API
The API provides the same functionality as Special:PasswordReset.

直接修改数据库
你可以通过改变数据库中 表的 字段来重置密码. 然而，一般来说使用“邮寄新密码”或使用 changePassword.php 脚本比这种方法要简单且安全得多. 您只能将直接修改数据库作为最后的手段，因为这很容易导致您的维基上出现意外的混乱. 在任何手动修改之前，必须备份数据库. 以下方法仅在使用 MediaWiki 默认身份验证程序时有效. 如果您正在使用更改了身份验证流程的扩展程序（例如 LDAPAuth），下列方法可能不起作用. You should only use direct DB modification as a last resort, as its very easy to accidentally mess up your wiki. Always backup your database before doing any manual modification. The following only works when using MediaWiki's default authentication provider. If you are using an extension that modifies the authentication process (Like LDAPAuth), the following may not work.

您看见的 user 表的格式会随着 中的   而改变. 然而，如果您使用了一种不同的格式，它会在用户下一次登入时自动变成正确的格式. 因此，对于本说明，我们展示了如何手动设置“B”格式. 通过SQL查询很容易设置这种格式. 它不是默认格式，因为它比 pbkdf2 弱. 但是这没有问题，因为 user_password 字段将在下次用户登入时升级为正确的格式. However if you use a different format, it will automatically be changed to the correct format the next time the user logs in. Thus for this guide, we show how to manually set the "B" format. This format is very easy to set from an SQL query. It is not the default format as it is weaker than pbkdf2, however that's ok as the user_password field will be upgraded to the correct format the next time the user logs in.


 * MySQL 加盐（1234 是盐. 你可以用任何数字替换它，只要两处使用到该数字的地方是一样的即可）:


 * PostgreSQL 加盐:

注释
重启 Apache 并清空浏览器缓存可能会有帮助.

你可以将已知的密码从一个账户复制到另一个账户：

SELECT user_id, user_name, user_password FROM user; +-+---+--+ +-+---+--+ +-+---+--+
 * user_id | user_name | user_password                               |
 * 1 | User1    | :B:1d8f41af:1ba8866d9c43d30b7bc037db03a067de |
 * 2 | User2    | :B:ee53710f:4291b056175513a5602d48eaeb79705c |

UPDATE user SET user_password = ':B:ee53710f:4291b056175513a5602d48eaeb79705c' WHERE user_id = 1;