"crypt" — Unix パスワードをチェックするための関数
*************************************************

This module implements an interface to the *crypt(3)* routine, which
is a one-way hash function based upon a modified DES algorithm; see
the Unix man page for further details.  Possible uses include allowing
Python scripts to accept typed passwords from the user, or attempting
to crack Unix passwords with a dictionary.

このモジュールは実行環境の *crypt(3)* の実装に依存しています。そのため
、現在の実装で利用可能な拡張を、このモジュールでもそのまま利用できます
。

crypt.crypt(word, salt)

   *word* will usually be a user’s password as typed at a prompt or
   in a graphical interface.  *salt* is usually a random two-character
   string which will be used to perturb the DES algorithm in one of
   4096 ways.  The characters in *salt* must be in the set
   "[./a-zA-Z0-9]".  Returns the hashed password as a string, which
   will be composed of characters from the same alphabet as the salt
   (the first two characters represent the salt itself).

   いくつかの拡張された *crypt(3)* は異なる値と *salt* の長さを許して
   いるので、パスワードをチェックする際には crypt されたパスワード文字
   列全体を *salt* として渡すよう勧めます。

A simple example illustrating typical use:

   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
