Переносятся ли MD5-хешированные пароли из функции PHP crypt () в поле пароля Django?

Я портирую группу учетных записей пользователей с устаревшего веб-сайта PHP на новый и блестящий сайт на основе Django. . Некоторые пароли хранятся в виде хэша MD5, полученного функцией PHP crypt () (см. Там третий пример).

Учитывая этот хэш пароля из унаследованного приложения:

$1$f1KtBi.v$nWwBN8CP3igfC3Emo0OB8/

Как может Я преобразовываю его в форму Django md5 $ $ ? В выводе MD5 crypt () , похоже, используется другой алфавит, чем в поддержке MD5 в Django (которая, похоже,

Обновление:

Есть аналогичный (и без ответа) вопрос с интересным потенциальным решением для преобразования хэша PHP в кодировку base-16, но на основе некоторого начального тыкаешь, похоже, что он не создает пригодный для использования шестнадцатеричный файл MD5.: (

Конкретный пример:

Конкретный пример может помочь.

Дано:

  • пароль foo
  • a соль $ 1 $ аофи grjlh

В PHP crypt ('foo', '$ 1 $ aofigrjlh') производит хэш $ 1 $ aofigrjl $ xLnO.D8x064D1kDUKWwbX. .

crypt () работает в режиме MD5, но это какой-то дурацкий датский перевод алгоритма MD5 ( Обновление: Это MD5-Crypt).Поскольку Python - это язык, унаследованный от голландского языка , модуль Python crypt поддерживает только хеширование в стиле DES.

В Python мне нужно иметь возможность воспроизвести этот хеш или какое-то его обычное происхождение, учитывая исходный пароль и соль.

7
задан Community 23 May 2017 в 11:47
поделиться