【问题标题】:Import users to Mybb database from another mysql table of users将用户从另一个 mysql 用户表导入 Mybb 数据库
【发布时间】:2016-07-07 00:30:31
【问题描述】:

我有一个带有登录名/密码部分的网站。它有大约500个用户。我已经在 mysql 表中为所有用户创建了登录名和密码,我们称之为“用户”。

现在我刚刚安装了一个 Mybb 论坛,它有自己的 mysql 数据库 (mybb_users)。 我不希望人们自己注册,我只希望他们使用他们在我的常规网站上使用的以前的登录名/密码。

我的问题是:

1)我可以从 mybb 应用程序中的 csv 文件导入用户吗?
2)mybb_users中的数据库结构为:用户名密码salt loginkey

在我只有登录名和密码(明文)的“用户”表中有所不同

如何转换密码并创建登录密钥以在 mybb 中使用。

我无法手动创建 500 个用户。
我希望我很清楚。

感谢您的帮助

【问题讨论】:

  • 如果表在同一个数据库中,您可以使用“insert into table2 (user,pass) select user,pass from table 1”进行创建
  • @RafaelShkembi Shkembi 在 mybb 管理界面中,我可以手动添加用户。当我这样做时,它会通过选择盐自动加密密码并使用登录密钥
  • 表在同一个数据库中?
  • @RafaelShkembi 不,他们不是,但我可以导出一个表并将其导入另一个数据库
  • 是的,您可以上传它们。你可以阅读这个example它会帮助你。

标签: php mysql mybb


【解决方案1】:

在我只有登录名和密码的“用户”表中有所不同 (明文)

一个可行的解决方案,因为您的初始存储密码根本没有加密:

提醒您的上下文:

  • 一种自定义类型的MyUserLogin 表。
  • MyBB 的登录表。我们称之为MyBBLogin。
  • MyUserLogin 的密码根本没有加密。
  • MyBBLogin 的密码使用 MD5 + Salt 加密。

除了 CSV 之外,一个简单的解决方案是创建这种 php 脚本:

  1. 从MyUserLogin 表中选择所有用户。
  2. 对于每个返回的用户密码($password_cleartext),应用这个函数:

    function generate_salt() {
        return random_str(8);  //picked from MyBB's source code
    }
    
    $passwordToStoreInMyBB = md5(md5($salt).md5($password_cleartext));
    
  3. 1234563 .

注意LoginKey字段只是MyBB在登录时生成的key,用于防止某些CSRF攻击,尤其是在注销机制期间。
您不必自己填充它。
有关此密钥here 本质的更多信息。

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 1970-01-01
    • 2011-11-04
    • 2012-01-01
    • 2022-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多