passwords - 如何在导入用户数据时为 md5 哈希生成 vBulletin 密码盐?

标签 passwords password-protection salt vbulletin

我正在将用户从旧数据库转移到 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/

相关文章:

java - Java 和 Postgres SQL 中的密码和盐如何与 MD5 结合?

ruby-on-rails - Rails 中有没有办法说 "run all the validates EXCEPT :password"?

iPhone:在哪里存储用户名和密码凭据?

authentication - 盐渍密码哈希

android - SHA-256 哈希在 Android 中产生错误的结果

php - WordPress 4.1插件: "Rename wp-login.php" causes password protected pages to stop working

passwords - 实现密码恢复最佳实践

java - WSO2 IS OAuth2 资源所有者密码 - 获取访问 token

MAMP 上的 MySQL 和 PhpMyAdmin config.inc.php 密码问题

security - 如何在没有 XML 的情况下为 Jetty 中的 ResourceHandler 提供安全认证?