2010-01-02 34 views
4

我正在徹底修改我最初使用Joomla製作的網站到Django,並且想知道是否可以直接從Joomla導入用戶記錄(我主要關心的是用戶密碼,因爲他們被加密)。將用戶帳戶從Joomla遷移到Django

回答

3

是的,你可以,但你必須做一些工作。 Joomla讓用戶保持一些特定的數據庫表結構,所以你必須把它們拉出來並將它們插入你在Django應用程序中創建的用戶表中。至於加密,如果算法是已知的,那麼它可能是保存在數據庫中的哈希值,只要您在Django應用程序中實現相同的哈希算法,就可以將其原樣傳輸。

記住:Django是比Joomla更概括的概念 - 它是一個編寫Web應用程序的框架,因此理論上你甚至可以用它完全重新實現Joomla。

+0

我遇到了我的Django應用程序正在執行相同的哈希算法問題位....讓我看看,如果我能找到一種方法,在此期間做到這一點。 – Stephen 2010-01-02 11:18:27

+0

Joomla是開源的,所以你可以很容易地找出它用於散列的算法。最有可能的是它是一種標準算法(如SHA-1),您可以在某些庫中找到Python,但沒有真正實現自己的功能 – 2010-01-02 12:27:08

+1

Joomla將醃過的哈希存儲在數據庫中。您將需要查看庫/ joomla/user/user.php中的bind()函數以及庫/ joomla/user/helper.php中的JUserHelper :: getSalt()和JUserHelper :: getCryptedPassword()。登錄過程發生在plugins/authentication/joomla.php中,它也使用JUserHelper :: getCryptedPassword() – jlleblanc 2010-01-02 15:03:32

0

Joomla(PHP)是一個CMS,而Django(Python)是一個Web框架。

我想知道這是否真的有可能。我現在可以得出的結論是,這是不可能的。然而有人可能對此有任何想法。

謝謝:)

1

我認爲有3種方法可以解決這個問題:

1)你可以閱讀有關如何Joomla和Django的做密碼的哈希值,並遷移一個腳本
2)你可以使自己的authentication backend
3)您可以使用ETL tool