署名インターフェース—その危険なドキュメント

提供:Dev Guides
Itsdangerous/docs/1.1.x/signer
移動先:案内検索

署名インターフェース

最も基本的なインターフェースは署名インターフェースです。 Signerクラスを使用して、特定の文字列に署名を添付できます。

from itsdangerous import Signer
s = Signer("secret-key")
s.sign("my string")
b'my string.wh6tMHxLgJqB6oY1uT73iMlyrOA'

署名は、ドットで区切られて文字列に追加されます。 文字列を検証するには、unsign()メソッドを使用します。

s.unsign(b"my string.wh6tMHxLgJqB6oY1uT73iMlyrOA")
b'my string'

Unicode文字列が提供されている場合、UTF-8への暗黙的なエンコードが発生します。 ただし、署名を解除した後は、それがユニコードなのかバイトストリングなのかがわかりません。

値が変更されると、署名は一致しなくなり、署名を解除するとBadSignature例外が発生します。

s.unsign(b"different string.wh6tMHxLgJqB6oY1uT73iMlyrOA")
Traceback (most recent call last):
  ...
itsdangerous.exc.BadSignature: Signature "wh6tMHxLgJqB6oY1uT73iMlyrOA" does not match

署名の経過時間を記録して検証するには、タイムスタンプによる署名を参照してください。

署名アルゴリズム