PHPBB用户是密码是HASH加密的,而DISCUZ的用户是用两层MD5加密的,要想PHPBB论坛的原来用户使用原有用户名和密码访问,需要做相应的更改。
我使用的DISCUZ的版本是Discuz_X3.2,PHPBB的版本没有去记。
说一下我大概的改动的地方。
1、改DISCUZ中的两个数据表结构,把保存密码的字段长度改40,主要有两个表pre_common_member,pre_ucenter_members。
2、把测试的用户和HASH之后的密码移到两个新的表上。
3、下载http://www.openwall.com/phpass PasswordHash.php拷贝到uc_client下。
4、修改uc_client\control\user.php中的onlogin函数中的红色部分.
function onlogin() {
......
$passwordmd5 = preg_match('/^\w{32}$/', $password) ? $password : md5($password);
if(empty($user)) {
$status = -1;
} elseif($user['password'] != md5($passwordmd5.$user['salt'])) {
$status = -2;
include_once UC_ROOT.'./PasswordHash.php';
$t_hasher = new PasswordHash(8, FALSE);
$check = $t_hasher->CheckPassword($password, $user['password']);
if($check == 1)
{
$status = $user['uid'];
}
} elseif($checkques && $user['secques'] != $_ENV['user']->quescrypt($questionid, $answer)) {
$status = -3;
} else {
$status = $user['uid'];
}
......
}