Я не очень хорошо знаю Drupal, но полагаю, что пароли хранятся в хэше. Если это так, вам придется копировать пароли (я имею в виду, копировать их без изменений), и вам придется изменить способ, которым Django хеширует свои пароли, используя точно такой же способ Drupal, с той же солью безопасности.
Я действительно не знаю, как это сделать, но логика паролей содержится в объекте User. Например. функция User.set_password()
(описанная здесь ) использует функцию make_password .
Я думаю, что после небольшого исследования вы найдете способ изменить его, но важно помнить, что функции должны быть равны! то есть:
drupal_hash (x) == django_hash (x) для каждого x в наборе разрешенных паролей.
EDIT:
При более глубоком рассмотрении django получает функцию has с функцией get_hasher . Теперь в версии 1.4 есть способ указать, как Django будет выбирать эту функцию. Взгляните на это: https://docs.djangoproject.com/en/dev/topics/auth/#how-django-stores-passwords
Наконец, чтобы создать собственную функцию, вы можете посмотреть, как это делается на MD5PasswordHasher . Это кажется действительно простым. Вы можете использовать библиотеку hashlib python для генерации алгоритмов sha-512.
Изменение метода кодирования потребует чего-то похожего на:
def encode(self, password, salt):
assert password
assert salt and '$' not in salt
hash = hashlib.sha512(salt + password).hexdigest()
return "%s$%s$%s" % (self.algorithm, salt, hash)