Commit 37ead8f1 authored by Martin v. Löwis's avatar Martin v. Löwis

Patch #997668: Correct explanation of salts.

Will backport to 2.3.
parent abba5c06
...@@ -17,6 +17,10 @@ the \UNIX{} man page for further details. Possible uses include ...@@ -17,6 +17,10 @@ the \UNIX{} man page for further details. Possible uses include
allowing Python scripts to accept typed passwords from the user, or allowing Python scripts to accept typed passwords from the user, or
attempting to crack \UNIX{} passwords with a dictionary. attempting to crack \UNIX{} passwords with a dictionary.
Notice that the behavior of this module depends on the actual implementation
of the \manpage{crypt}{3}\index{crypt(3)} routine in the running system.
Therefore, any extensions available on the current implementation will also
be available on this module.
\begin{funcdesc}{crypt}{word, salt} \begin{funcdesc}{crypt}{word, salt}
\var{word} will usually be a user's password as typed at a prompt or \var{word} will usually be a user's password as typed at a prompt or
in a graphical interface. \var{salt} is usually a random in a graphical interface. \var{salt} is usually a random
...@@ -25,6 +29,10 @@ attempting to crack \UNIX{} passwords with a dictionary. ...@@ -25,6 +29,10 @@ attempting to crack \UNIX{} passwords with a dictionary.
set \regexp{[./a-zA-Z0-9]}. Returns the hashed password as a set \regexp{[./a-zA-Z0-9]}. Returns the hashed password as a
string, which will be composed of characters from the same alphabet string, which will be composed of characters from the same alphabet
as the salt (the first two characters represent the salt itself). as the salt (the first two characters represent the salt itself).
Since a few \manpage{crypt}{3}\index{crypt(3)} extensions allow different
values, with different sizes in the \var{salt}, it is recommended to use
the full crypted password as salt when checking for a password.
\end{funcdesc} \end{funcdesc}
...@@ -40,7 +48,7 @@ def login(): ...@@ -40,7 +48,7 @@ def login():
if cryptedpasswd == 'x' or cryptedpasswd == '*': if cryptedpasswd == 'x' or cryptedpasswd == '*':
raise "Sorry, currently no support for shadow passwords" raise "Sorry, currently no support for shadow passwords"
cleartext = getpass.getpass() cleartext = getpass.getpass()
return crypt.crypt(cleartext, cryptedpasswd[:2]) == cryptedpasswd return crypt.crypt(cleartext, cryptedpasswd) == cryptedpasswd
else: else:
return 1 return 1
\end{verbatim} \end{verbatim}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment