我想创建一个脚本,将大约100个用户插入Drupal 6数据库 - 他们的用户名,邮件和密码哈希。
在阅读了Drupal 6使用的PHP类之后,我不确定是否可以解决这个问题。 我的方法是向每个用户发送一封邮件,例如“Hello,x!你的新密码是y”,然后将散列的“y”插入Drupal的用户表。
我知道Drupal会返回一个md5。但它不仅仅是md5的原始密码,而是一个非常混乱的密码(使用salt和其他方法)。
我已经查看了Portable PHP password hashing framework Drupal的使用情况,但我认为它不适用于复制+粘贴方法。
所以,我的问题是:我可以创建一个PHP函数,返回一个有效的Drupal 6密码哈希,将其插入到用户表中吗?
答案 0 :(得分:7)
实际上,Drupal 6 不使用任何盐来计算密码的哈希值。它只是密码的简单md5
你可以试试这个。将密码设置为某些内容。
计算密码的md5(为方便起见,您可以使用此链接http://www.miraclesalad.com/webtools/md5.php。)
您会发现存储在users
列pass
表中的数据库中的哈希值完全相同
Drupal 6的默认安装的此行为(Drupal 7的行为可能已更改)。只有安装了一些特殊模块,Drupal 6的行为才会有所不同。
答案 1 :(得分:4)
如果您是以编程方式创建用户,则应自行创建明文密码,然后使用user_save()
函数将用户插入数据库。该函数将为您散列并保存所有内容。
答案 2 :(得分:2)
现有的user import模块看起来适用于批量用户导入。这不会回答您的“我如何散列密码”问题,但它将消除对自定义(可能更容易出错)脚本的需求。