什么函数返回 Drupal-6 有效的密码哈希?
我想制作一个脚本将大约 100 个用户插入到 Drupal 6 数据库中 - 他们的用户名、邮件和密码哈希值。
在阅读了 Drupal 6 使用的 PHP 类之后,我不确定我是否可以实现这一点。 我的方法是向每个用户发送一封类似于“Hello,x!您的新密码是 y”的邮件,然后将散列的“y”插入到 Drupal 的用户表中。
我知道 Drupal 返回一个 md5。但它不仅仅是 md5 的原始密码,而是一个非常混合的密码(使用 salt 和其他方法)。
我研究过 Drupal 的使用 便携式 PHP 密码哈希框架,但我认为它不起作用只需使用复制+粘贴的方法即可。
所以,我的问题是:我可以创建一个 PHP 函数来返回有效的 Drupal 6 密码哈希值并将其插入到其用户表中吗?
I want to make a script to insert some 100 users into a Drupal 6 database - their username, mail and password hash.
After reading about the PHP class that Drupal 6 uses, I'm not sure I can pull this off.
My method was to send every user a mail like "Hello, x! Your new password is y", then insert the hashed "y" into Drupal's user table.
I know Drupal returns an md5. But it doesn't just md5's the original password, but a very mixed-up password (using salt and other methods).
I've looked into the Portable PHP password hashing framework Drupal's using, but I don't think it works just with a copy+paste method.
So, my question is: can I make a PHP function that returns a valid Drupal 6 password hash to insert it into its user table?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
实际上,Drupal 6不使用任何盐来计算密码的哈希值。它只是密码的简单 md5
您可以自己尝试一下。设置你的密码。
计算您的密码的 md5(您可以使用此链接 http://www.miraclesalad.com/webtools /md5.php 为了方便起见)。
完全相同
您会发现
users
表中pass
列中存储在数据库中的哈希将与默认安装的此行为 Drupal 6 的行为(Drupal 7 的行为可能已更改)。仅当您安装了某些特殊模块时,Drupal 6 的行为才会有所不同。Actually, Drupal 6 does not use any salt to calculate the hash of the password. Its just a simply md5 of the password
You can try this for your self. Set your password to something.
Calculate the md5 of your password (you can use this link http://www.miraclesalad.com/webtools/md5.php for convenience).
You will find that the hash stored in the database in the
users
table in thepass
column will be exactly the sameThis behavior for the default installation of Drupal 6 (the behavior may have changed for Drupal 7). Only if you have some special module installed will the behavior be any different for Drupal 6.
如果您以编程方式创建用户,则应自行创建明文密码,然后使用
user_save()
函数将用户插入数据库。该函数将为您散列并保存所有内容。If you're creating users programmatically, you should create the plaintext password yourself, and then use the
user_save()
function to insert the user into the database. That function will hash and save everything for you.现有的用户导入模块看起来适用于批量用户导入。这不会回答您的“如何散列密码”问题,但它将消除对自定义(可能更容易出错)脚本的需要。
The existing user import module looks like it would work for bulk user importing. This does not answer your "how do I hash the password" question, but it would remove the need for a custom (probably more error prone) script.