前のトピックへ

15.1. hashlib — セキュアハッシュおよびメッセージダイジェスト

次のトピックへ

15.3. md5 — MD5 メッセージダイジェストアルゴリズム

このページ

15.2. hmac — メッセージ認証のための鍵付きハッシュ化

バージョン 2.2 で追加.

このモジュールでは RFC 2104 で記述されている HMAC アルゴリズムを実装しています。

hmac.new(key[, msg[, digestmod]])

新たな hmac オブジェクトを返します。 msg が存在すれば、メソッド呼び出し updatemsg を行います。 digestmod は HMAC オブジェクトが使うダイジェストコンストラクタあるいはモジュールです。 標準では hashlib.md5() コンストラクタになっています。

ノート

md5ハッシュには既知の脆弱性がありますが、後方互換性を考慮してデフォルトのままにしています。 使用するアプリケーションにあわせてよりよいものを選択してください。

HMAC オブジェクトは以下のメソッドを持っています:

hmac.update(msg)

hmac オブジェクトを文字列 msg で更新します。 繰り返し呼び出しを行うと、それらの引数を全て結合した引数で単一の呼び出しをした際と同じに等価になります: すなわち m.update(a); m.update(b)m.update(a + b) と等価です。

hmac.digest()

これまで update() メソッドに渡された文字列のダイジェスト値を返します。 これは digest_size バイトの文字列で、NULL バイトを含む非 ASCII 文字が含まれることがあります。

hmac.hexdigest()

digest() と似ていますが、返される文字列は倍の長さとなり、16進形式となります。 これは、電子メールなどの非バイナリ環境で値を交換する場合に便利です。

hmac.copy()

hmac オブジェクトのコピー (“クローン”) を返します。このコピーは最初の部分文字列が共通になっている文字列のダイジェスト値を効率よく計算するために使うことができます。

参考

Module hashlib
セキュアハッシュ関数を提供するpythonモジュールです。