署名インターフェース—その危険なドキュメント
提供:Dev Guides
Itsdangerous/docs/2.0.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):
...
BadSignature: Signature does not match
署名の経過時間を記録して検証するには、タイムスタンプによる署名を参照してください。
署名アルゴリズム