14.4. "sha" --- SHA-1 メッセージダイジェストアルゴリズム
********************************************************

バージョン 2.5 で非推奨: 代わりにモジュール "hashlib" を使ってください
。

このモジュールは、 SHA-1 として知られている、 NIST のセキュアハッシュ
アルゴリズムへのインターフェースを実装しています。 SHA-1 はオリジナル
の SHA ハッシュアルゴリズムを改善したバージョンです。 "md5" モジュール
と同じように使用します。 sha オブジェクトを生成するために "new()" を使
い、 "update()" メソッドを使って、このオブジェクトに任意の文字列を入力
し、それまでに入力した文字列全体の *digest* をいつでも調べることができ
ます。 SHA-1 のダイジェストは MD5 の 128 bit とは異なり、 160 bit です
。

sha.new([string])

   新たな sha オブジェクトを返します。もし *string* が存在するなら、
   "update(string)" を呼び出します。

以下の値はモジュールの中で定数として与えられており、 "new()" で返され
る sha オブジェクトの属性としても与えられます :

sha.blocksize

   ハッシュ関数に入力されるブロックのサイズ。このサイズは常に "1" です
   。このサイズは、任意の文字列をハッシュできるようにするために使われ
   ます。

sha.digest_size

   返されるダイジェスト値をバイト数で表した長さ。常に 20 です。

sha オブジェクトには md5 オブジェクトと同じメソッドがあります。

sha.update(arg)

   文字列 *arg* を入力として sha オブジェクトを更新します。このメソッ
   ドを繰り返し呼び出す ( 操作は、それぞれの呼び出し時の引数を結合した
   データを引数として一回の呼び出す操作と同等になります。つまり、
   "m.update(a); m.update(b)" は "m.update(a+b)" と同等です。

sha.digest()

   これまで update() メソッドで与えてきた文字列のダイジェストを返しま
   す。戻り値は 20 バイトの文字列で、 null バイトを含む非 ASCII 文字が
   入っているかもしれません。

sha.hexdigest()

   "digits()" と似ていますが、ダイジェストは長さ 40 の文字列になり、
   16 進表記数字しか含みません。電子メールやその他のバイナリを受け付け
   ない環境で安全に値をやりとりするために使うことができます。

sha.copy()

   sha オブジェクトのコピー (" クローン ") を返します。冒頭の部分文字
   列が共通な複数の文字列のダイジェストを効率よく計算する際に使うこと
   ができます。

参考:

  ` セキュアハッシュスタンダード <http://csrc.nist.gov/publications/f
  ips/fips180-2/fips180-2withchangenotice.pdf>`_
     セキュアハッシュアルゴリズムは NIST のドキュメント FIPS PUB 180-2
     で定義されています。 ` セキュアハッシュスタンダード <http://csrc
     .nist.gov/publications/fips/fips180-2/fips180-2withchangenotice.
     pdf>`_, 2002 年 8 月出版。

  ` 暗号ツールキット ( セキュアハッシュ )
  <http://csrc.nist.gov/CryptoToolkit/tkhash.html>`_
     NIST からはられているセキュアハッシュに関するさまざまな情報へのリ
     ンク
