2010-10-08 68 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