Spec-Zone.ru › Python 2.7

crypt — Функция проверки паролей Unix

Этот модуль реализует интерфейс к функции crypt(3), которая является односторонней хеш-функцией, основанной на модифицированном алгоритме DES; см. страницу руководства Unix для получения дополнительных сведений. Возможные применения включают возможность для скриптов Python принимать введенные пользователем пароли или попытку взлома паролей Unix с помощью словаря.

Обратите внимание, что поведение этого модуля зависит от фактической реализации функции crypt(3) в текущей системе. Поэтому любые расширения, доступные в текущей реализации, также будут доступны в этом модуле.

crypt.crypt(word, salt)

word обычно представляет собой пароль пользователя, введенный в приглашении или графическом интерфейсе. salt обычно представляет собой случайную строку из двух символов, которая будет использоваться для возмущения алгоритма DES одним из 4096 способов. Символы в salt должны принадлежать набору [./a-zA-Z0-9]. Возвращает хешированный пароль в виде строки, который будет состоять из символов из того же алфавита, что и соль (первые два символа представляют собой саму соль).

Поскольку некоторые расширения crypt(3) позволяют использовать различные значения с разной длиной в salt, рекомендуется использовать весь зашифрованный пароль в качестве соли при проверке пароля.

Простой пример, иллюстрирующий типичное использование:

import crypt, getpass, pwd

def login():
    username = raw_input('Python login:')
    cryptedpasswd = pwd.getpwnam(username)[1]
    if cryptedpasswd:
        if cryptedpasswd == 'x' or cryptedpasswd == '*':
            raise NotImplementedError(
                "Sorry, currently no support for shadow passwords")
        cleartext = getpass.getpass()
        return crypt.crypt(cleartext, cryptedpasswd) == cryptedpasswd
    else:
        return 1

© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/crypt.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API