14.3。 md5 —MD5メッセージダイジェストアルゴリズム
バージョン2.5以降非推奨:代わりに hashlib モジュールを使用してください。
このモジュールは、RSAのMD5メッセージダイジェストアルゴリズムへのインターフェイスを実装します(インターネット RFC 1321 も参照)。 その使用法は非常に簡単です。 new()を使用してmd5オブジェクトを作成します。 update()
メソッドを使用して、このオブジェクトに任意の文字列をフィードできるようになりました。また、いつでもダイジェスト(強力な種類の128ビットチェックサム、別名 digest()
メソッドを使用して、これまでにフィードされた文字列の連結の「フィンガープリント」)。
たとえば、文字列'Nobody inspects the spammish repetition'
のダイジェストを取得するには、次のようにします。
>>> import md5
>>> m = md5.new()
>>> m.update("Nobody inspects")
>>> m.update(" the spammish repetition")
>>> m.digest()
'\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9'
より凝縮された:
>>> md5.new("Nobody inspects the spammish repetition").digest()
'\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9'
次の値は、モジュール内の定数として、および new()によって返されるmd5オブジェクトの属性として提供されます。
- md5.digest_size
- 結果のダイジェストのサイズ(バイト単位)。 これは常に
16
です。
md5モジュールは、次の機能を提供します。
- md5.new([arg])
- 新しいmd5オブジェクトを返します。 arg が存在する場合、メソッド呼び出し
update(arg)
が行われます。
- md5.md5([arg])
- 下位互換性の理由から、これは new()関数の別名です。
md5オブジェクトには次のメソッドがあります。
- md5.update(arg)
- 文字列 arg でmd5オブジェクトを更新します。 繰り返される呼び出しは、すべての引数を連結した単一の呼び出しと同等です。
m.update(a); m.update(b)
はm.update(a+b)
と同等です。
- md5.digest()
- これまでに update()メソッドに渡された文字列のダイジェストを返します。 これは16バイトの文字列であり、nullバイトを含む非ASCII文字を含めることができます。
- md5.hexdigest()
- digest()と同様ですが、ダイジェストが16進数のみを含む長さ32の文字列として返される点が異なります。 これは、電子メールまたはその他の非バイナリ環境で値を安全に交換するために使用できます。
- md5.copy()
- md5オブジェクトのコピー(「クローン」)を返します。 これを使用して、共通の初期サブ文字列を共有する文字列のダイジェストを効率的に計算できます。