我正在将用户从旧数据库转移到 vBulletin 数据库。
我想要一个脚本来执行此操作,否则将花费很长时间。
我存储了所有用户的密码,就像md5(密码)一样
但是,当然,由于盐等原因,这不适用于 vBulletin。
所以我的代码是这样的:
<?Php
mydatabase_connect();
$select=mysql_query("SELECT * from `users`");
while($user=mysql_fetch_array($select)) {
forum_connect();
$check=mysql_query("SELECT * from `user` where `username` = '{$user[username]}'");
if(mysql_num_rows($check)>="1") {
echo "fail";
}else{
$insert=mysql_query("INSERT into `user` SET `username` = '{$user[username]}', `password` = '{$user[password]}', `email` = '{$user[email]}'");
if($insert) {
echo 'success';
}else{
echo 'fail';
}
}
mydatabase_connect();
}
?>
我如何更改它以与 vBulletin 一起使用 - 这样我就可以正确设置 vBulletin user.password
字段和 vBulletin user.salt
。请记住,我的 $user[password] 或 users
.password
存储为其真实文本密码的 md5 哈希值。
谢谢!
最佳答案
我不知道这个答案是否太晚了,但您应该能够自动将您的密码转移到 vBulletin 中。
vBulletin 以这种方式生成其哈希值:
$hash = md5(md5($plaintext) . $salt);
因此,要转移用户,请大致执行以下操作:
$salt = /* generate salt */;
$vb_hash = md5($your_old_hash . $salt);
为了方便自己,请使用 vBulletin 的盐生成方法。它位于 vB_DataManager_User
类中。
关于passwords - 如何在导入用户数据时为 md5 哈希生成 vBulletin 密码盐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1516528/