2012-05-17 2 views
1

Насколько я знаю, в аутентификации дайджеста клиент делает необратимое вычисление, используя пароль и случайное значение, предоставленное сервером в качестве входных значений. Результат передается серверу, который выполняет те же вычисления и аутентифицирует клиента, если он достигает того же значения. Поскольку вычисление необратимо, подслушивающее устройство не может получить пароль.Дайджест-аутентификация в django

Сохраняя глаз из приведенного выше определения, я использовал CryptoJS.HmacSHA256("password", "key") в JavaScript, чтобы отправить информацию Джанго сервер, теперь проблема:

мне нужно проверить, что сервер, используя ту же логику, но Джанго уже хэшированного пароль в своем собственном формате, например, с использованием pbkdf2_sha256.

Должен ли я использовать какой-либо обратимый алгоритм, такой как AES? Я не думаю, что можно взломать алгоритм хэширования django и написать то же самое для клиентской стороны?

ответ

1

Почему вы пытаетесь сделать аутентификацию таким образом? Для этого нельзя использовать стандартную аутентификацию djangos.

Что вы можете сделать, хотя это (например):

  1. Создать новую модель, связанную с пользователем, который имеет общий секретный ключ, а маркер
  2. Создайте свой собственный бэкенд аутентификации, который принимает подписанное значение, проверяет значение, подписанное, и затем регистрирует пользователя в

Я использовал данные в this article для реализации алгоритма. Даже если вы не используете этот метод, вам все равно потребуется создать свой собственный код authentication backend.

-1
  • AES не является алгоритмом хэширования. Это алгоритм шифрования.
  • Вы можете использовать алгоритмы хеширования, такие как SHA1 или MD5.
Смежные вопросы