2010-01-02 87 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

相关问题