7

我想编写一个脚本来将大约 100 个用户插入 Drupal 6 数据库——他们的用户名、邮件和密码哈希。

在阅读了 Drupal 6 使用的 PHP 类之后,我不确定我能否成功。我的方法是给每个用户发送一封像“你好,x!你的新密码是 y”这样的邮件,然后将散列后的“y”插入 Drupal 的用户表中。

我知道 Drupal 返回一个 md5。但它不仅仅是 md5 的原始密码,而是一个非常混乱的密码(使用 salt 和其他方法)。

我研究了 Drupal 使用的便携式 PHP 密码散列框架,但我认为它不能仅使用复制+粘贴方法。

所以,我的问题是:我可以创建一个返回有效 Drupal 6 密码哈希的 PHP 函数,以将其插入到它的用户表中吗?

4

3 回答 3

9

实际上,Drupal 6 不使用任何盐来计算密码的哈希值。它只是密码的简单 md5

你可以自己试试这个。将密码设置为某事。

计算密码的 md5(为方便起见,您可以使用此链接http://www.miraclesalad.com/webtools/md5.php)。

你会发现数据库中存储的hash在users表中的pass列中会完全一样

此行为适用于 Drupal 6 的默认安装(Drupal 7 的行为可能已更改)。只有安装了一些特殊模块,Drupal 6 的行为才会有所不同。

于 2010-10-11T11:00:03.117 回答
4

如果您以编程方式创建用户,则应自己创建明文密码,然后使用该user_save()函数将用户插入数据库。该函数将为您散列并保存所有内容。

于 2010-10-08T16:45:48.357 回答
2

现有的用户导入模块看起来可以用于批量用户导入。这并不能回答您的“我如何散列密码”问题,但它会消除对自定义(可能更容易出错)脚本的需求。

于 2010-10-08T16:49:45.410 回答