http://docs.python.org/2/library/crypt.html
プラットフォーム:Unix
このモジュールは、変更されたDESアルゴリズムに基づく一方向ハッシュ関数であるcrypt(3)ルーチンへのインターフェイスを実装します。詳細については、Unixのマニュアルページを参照してください。考えられる用途には、Pythonスクリプトがユーザーから入力されたパスワードを受け入れることを許可したり、辞書を使用してUnixパスワードを解読しようとしたりすることが含まれます。
このモジュールの動作は、実行中のシステムでのcrypt(3)ルーチンの実際の実装に依存することに注意してください。したがって、現在の実装で利用可能な拡張機能は、このモジュールでも利用できます。
crypt.crypt(word、salt)
単語は通常、プロンプトまたはグラフィカルインターフェイスで入力されたユーザーのパスワードになります。saltは通常、ランダムな2文字の文字列であり、4096の方法のいずれかでDESアルゴリズムを混乱させるために使用されます。ソルトの文字は、セット[./a-zA-Z0-9]に含まれている必要があります。ハッシュされたパスワードを文字列として返します。文字列は、ソルトと同じアルファベットの文字で構成されます(最初の2文字はソルト自体を表します)。
いくつかのcrypt(3)拡張機能では、ソルトのサイズが異なるさまざまな値が許可されるため、パスワードをチェックするときは、完全に暗号化されたパスワードをソルトとして使用することをお勧めします。
典型的な使用法を示す簡単な例:
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