Я портирую группу учетных записей пользователей с устаревшего веб-сайта PHP на новый и блестящий сайт на основе Django. . Некоторые пароли хранятся в виде хэша MD5, полученного функцией PHP crypt ()
(см. Там третий пример).
Учитывая этот хэш пароля из унаследованного приложения:
$1$f1KtBi.v$nWwBN8CP3igfC3Emo0OB8/
Как может Я преобразовываю его в форму Django md5 $
? В выводе MD5 crypt ()
, похоже, используется другой алфавит, чем в поддержке MD5 в Django (которая, похоже,
Обновление:
Есть аналогичный (и без ответа) вопрос с интересным потенциальным решением для преобразования хэша PHP в кодировку base-16, но на основе некоторого начального тыкаешь, похоже, что он не создает пригодный для использования шестнадцатеричный файл MD5.: (
Конкретный пример:
Конкретный пример может помочь.
Дано:
foo
$ 1 $ аофи grjlh
В PHP crypt ('foo', '$ 1 $ aofigrjlh')
производит хэш $ 1 $ aofigrjl $ xLnO.D8x064D1kDUKWwbX.
.
crypt ()
работает в режиме MD5, но это какой-то дурацкий датский перевод алгоритма MD5 ( Обновление: Это MD5-Crypt).Поскольку Python - это язык, унаследованный от голландского языка , модуль Python crypt
поддерживает только хеширование в стиле DES.
В Python мне нужно иметь возможность воспроизвести этот хеш или какое-то его обычное происхождение, учитывая исходный пароль и соль.