Перенос хэш из php's crypt () в python

Мне было интересно, существует ли python, связанный с функцией crypt() PHP, которая работает аналогичным образом, генерируя случайную соль и встраивая ее в сохраненную строку.

У меня есть таблица хешированных паролей, которые были созданы с помощью строкового ключа $5$ для настройки криптограммы на основе SHA256. Эти хэши имели некоторую дополнительную записанную энтропию, прикрепленную к обоим концам с фиксированным интервалом, но разделение этих символов с строкой и получение основного хэша тривиально и не проблема вообще.

Я просмотрел документацию python и не могу найти какие-либо методы в hashlib которые, похоже, используют один и тот же синтаксис из php's crypt() . Используется ли этот подход в PHP (входной формат, разделенный знаками доллара между солью, альго и раундами), уникальным для языка?

Благодарю.

РЕДАКТИРОВАТЬ:

Похоже, что исправленная версия собственной функции криптографического скрипта python будет использовать процедуры, аналогичные процедурам PHP. Из документа предварительной версии 3.3:

http://docs.python.org/dev/library/crypt.html

EDIT :

Наконец, нашел Passlib, библиотеку, которая предоставляет эту функциональность в чистом python.

http://packages.python.org/passlib/index.html

Related of "Перенос хэш из php's crypt () в python"

Это, безусловно, очень похоже на склепку FreeBSD (см. «Модульный склеп» в man-странице). На самом деле я не помню, так ли это в Linux или других, но это, похоже, указывает на то, что оно не уникально.

Насколько я знаю, прямого прямого эквивалента в Python нет, но его не должно быть слишком сложно катить, поскольку сами алгоритмы шифрования должны поддерживаться в hashlib .

Я понимаю, что этот вопрос старый, однако я нашел его, пока я пытался реализовать алгоритм входа в Python, который был первоначально написан на PHP. Функция crypt в PHP использует любую из нескольких небезопасных алгоритмов DES, включая bcrypt. Это зависит от того, с чем вы хотите использовать свою строку. Passlib – это в значительной степени ваш лучший выбор для репликации функциональности, которую ваше приложение в настоящее время получает от PHP-склепа. Возьмите один из ваших хешированных паролей и посмотрите на строку. Вы должны увидеть что-то вроде $ 2a $, $ 3 $, $ 6 $ (или подобных). Обратите внимание: если эта строка не существует, вы, скорее всего, используете стандартное хеширование DES.

Возьмите эту информацию по этой ссылке:

http://pythonhosted.org/passlib/modular_crypt_format.html#mcf-identifiers

Затем сопоставьте его с алгоритмом, который необходимо реализовать в Python. Идентификаторы схемы – это ссылки на документацию passlib относительно этого алгоритма хеширования. На этом этапе у вас должна быть вся информация, необходимая для завершения повторной реализации.