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