2010-10-08 70 views
6

我想制作一个脚本来将大约100个用户插入Drupal 6数据库 - 他们的用户名,邮件和密码哈希。什么函数返回一个Drupal-6有效的密码哈希?

在阅读了关于Drupal 6使用的PHP类之后,我不确定我能否做到这一点。 我的方法是为每个用户发送一个邮件,比如“你好,x!你的新密码是y”,然后把散列的“y”插入到Drupal的用户表中。

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

我已经调查了Portable PHP password hashing framework Drupal的使用,但我不认为它只适用于复制+粘贴方法。

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

+1

难道你不能只看Drupal的源代码吗? – Andrey 2010-10-08 16:44:39

+1

你是怎么理解我没有? – nevvermind 2010-10-08 17:02:42

回答

7

事实上,Drupal 6 does 不是使用任何盐来计算密码的散列。它只是一个简单的密码的MD5

你可以试试这个为你自己。设置你的密码。

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

你会发现存储在数据库中users表中pass列中的散列将完全相同

这种行为为Drupal 6的默认安装(行为可能已经改变为Drupal 7)。只有当你安装了一些特殊模块时,Drupal 6的行为才会有所不同。

+0

是的,在更多的代码赌博之后,我也意识到了这一点。我以为不同。嗯,md5()是我猜我的问题的答案 – nevvermind 2010-10-11 15:56:34

4

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

+0

谢谢。我认为这就是我正在寻找的。 – nevvermind 2010-10-08 17:04:02

+0

@nush:好像你是StackOverflow的新手......你可能想要“接受”一个答案。如果您认为(或其他答案)是“正确的”答案,请点击问题下方的绿色复选标记。 – 2010-10-11 11:29:49

2

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

+0

感谢您的提示。我会研究它。 – nevvermind 2010-10-08 17:05:22