Использование модуля crypt в Windows?

В IDLE и Python версии 3.3.2 я пытаюсь вызвать модуль python следующим образом:

hash2 = crypt(word, salt) 

Я импортирую его в верхней части моей программы следующим образом:

 from crypt import * 

В результате я получаю следующее:

 Traceback (most recent call last): File "C:\none\of\your\business\adams.py", line 10, in <module> from crypt import * File "C:\Python33\lib\crypt.py", line 3, in <module> import _crypt ImportError: No module named '_crypt' 

Однако, когда я adams.py тот же файл adams.py в Ubuntu, с Python 2.7.3, он отлично выполняет – никаких ошибок.

Я попробовал следующее решить проблему для моего Windows & Python 3.3.2 (хотя я уверен, что ОС не проблема, проблема Python или мое использование синтаксиса является проблемой):

  1. Переименуйте каталог в каталог Python33 из Lib в lib
  2. Переименуйте crypt.py в lib в _crypt.py . Однако, как оказалось, весь модуль crypt.py зависит от внешнего модуля, называемого _crypt.py .
  3. Просмотренный интернет, чтобы загрузить что-нибудь отдаленно подходящее, чтобы походить на _crypt.py

Это не Питон, верно? Это я … (?) Я использую синтаксисы для импорта и использования внешних модулей, которые приемлемы в 2.7.3, но не в 3.3.2. Или я нашел ошибку в 3.3.2?

  • Python, pinax, django, windows AttributeError: объект 'module' не имеет атрибута 'call_subprocess'
  • Как установить OpenCV на Windows и включить его для PyCharm без использования диспетчера пакетов
  • передача дескриптора файла в функцию библиотеки C через ctypes на окнах
  • py2exe для генерации dll?
  • Каков наилучший способ сопоставления дисков Windows с помощью Python?
  • В Windows, как открыть для записи файл, уже открытый для записи другим процессом?
  • django-admin.py и virtualenv проблема в Windows
  • Как выполнить скрипты Python в Windows?
  • 3 Solutions collect form web for “Использование модуля crypt в Windows?”

    Я предполагаю, что это связано с тем, что crypt является специализированной службой Unix .

    Прямо в верхней части документов для crypt :

    34,5. crypt – функция проверки паролей Unix

    Платформы: Unix

    Лучшим подходом было бы использовать модуль passlib python, который генерирует совместимые хэшисы crypt из Linux-паролей (я предполагаю, что это то, что вы, скорее всего, захотите). Я проверил это, используя файлы Kickstart, введя порожденное значение пароля хеширования в корневых и пользовательских атрибутах. Необходимые функции:

     from passlib.hash import md5_crypt as md5 from passlib.hash import sha256_crypt as sha256 from passlib.hash import sha512_crypt as sha512 md5_passwd = md5.encrypt(passwd, rounds=5000, implicit_rounds=True) sha256_passwd = sha256.encrypt(passwd, rounds=5000, implicit_rounds=True) sha512_passwd = sha512.encrypt(passwd, rounds=5000, implicit_rounds=True) 

    Первый параметр не требует пояснений.
    Второй и третий параметры связаны со спецификацией соответствия и необходимы для генерации linux-совместимых паролей хэша *** (см .: Passlib: спецификация SHA256, формат и алгоритм )

    *** ПРИМЕЧАНИЕ. Протестировано с SHA512, но я не вижу причин, почему он не должен работать с SHA256 или MD5.

    Я нашел альтернативный модуль под названием fcrypt, доступный здесь:

    Он старый, поэтому не ожидайте совместимости с python3.

    Python - лучший язык программирования в мире.