我也有这个问题。我最终解决了这个问题,将MD5密码作为纯文本导入,然后更改Wordpress身份验证,在检查密码之前将其通过MD5哈希。
我的具体做法是:
我使用插件从CSV中导入用户,CSV中包含用户的MD5 ed密码。这让我的数据库中充满了无法登录的用户,因为他们的明文密码现在是“5f4dcc3b5aa765d61d8327deb882cf99”,而不是“密码”。
接下来,我编写了一个插件,其中包括对wp\\u hash\\u password()和wp\\u check\\u password()的微小更改,以使MD5哈希成为所有密码检查的第一步。因此,当他们输入“password”时,WordPress会检查“5f4dcc3b5aa765d61d8327deb882cf99”,因此身份验证检查成功。我仍然得到相同的phpass加密,唯一的区别是我从不给它原始的明文来加密。
这是通过从pluggable复制和粘贴这些功能来实现的。将php转换为新插件,并对其进行修改,以将提供的明文密码封装在md5()中。
每个函数与原来的实现相比只有一个变化;函数wp\\u hash\\u password()中的此行:
return $wp_hasher->HashPassword( trim( $password ) );
收件人:
return $wp_hasher->HashPassword( md5 ( trim( $password ) ) );
函数wp\\u check\\u password()中的这一行:
$check = $wp_hasher->CheckPassword($password, $hash);
收件人:
$check = $wp_hasher->CheckPassword(md5($password), $hash);
通过这种方法,用户可以透明地保存他们的密码,而不是牺牲安全性,我们可以使用一种更加安全的现成身份验证方案。