一图看懂 itsdangerous 模块:将受信任的数据传递到不受信任的环境的帮助工具,资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创,转载请声明。
链接: https://blog.csdn.net/Ahcao2008

Alt

一图看懂 itsdangerous 模块:将受信任的数据传递到不受信任的环境的帮助工具,资料整理+笔记(大全)

🧊摘要

  • 全文介绍python的 itsdangerous 模块(将受信任的数据传递到不受信任的环境的帮助工具)、函数、类及类的方法和属性。
  • 它通过代码抓取并经AI智能翻译和人工校对。
  • 是一部不可多得的权威字典类工具书。它是系列集的一部分。后续陆续发布、敬请关注。【原创:AhcaoZhu大侠】

🧊模块图

itsdangerous-module

itsdangerous
	itsdangerous.exc
	itsdangerous.encoding
		◆base64
	itsdangerous.signer
		◆hmac
	itsdangerous.serializer
	itsdangerous.timed
	itsdangerous._json
	itsdangerous.url_safe

🧊类关系图

itsdangerous-class

◆object
	◆BaseException
		◆Exception
			itsdangerous.exc.BadData
				itsdangerous.exc.BadPayload
				itsdangerous.exc.BadSignature
					itsdangerous.exc.BadHeader
					itsdangerous.exc.BadTimeSignature
						itsdangerous.exc.SignatureExpired
	itsdangerous._json._CompactJSON
	itsdangerous.serializer.Serializer
		itsdangerous.timed.TimedSerializer
			itsdangerous.url_safe.URLSafeSerializerMixin
				itsdangerous.url_safe.URLSafeSerializer
				itsdangerous.url_safe.URLSafeTimedSerializer
		itsdangerous.url_safe.URLSafeSerializerMixin
	itsdangerous.signer.Signer
		itsdangerous.timed.TimestampSigner
	itsdangerous.signer.SigningAlgorithm
		itsdangerous.signer.HMACAlgorithm
		itsdangerous.signer.NoneAlgorithm

🧊模块全展开

☘️【itsdangerous】

itsdangerous, fullname=itsdangerous, file=itsdangerous_init_.py

🔵统计

序号类别数量
4str5
6list1
8dict1
9module7
10class14
11function3
13residual3
14system10
15private1
16all34

🔵模块

🌿1 itsdangerous.exc

exc, fullname=itsdangerous.exc, file=itsdangerous\exc.py

🌿2 itsdangerous.encoding

encoding, fullname=itsdangerous.encoding, file=itsdangerous\encoding.py

🌿3 itsdangerous.signer

signer, fullname=itsdangerous.signer, file=itsdangerous\signer.py

🌿4 itsdangerous.serializer

serializer, fullname=itsdangerous.serializer, file=itsdangerous\serializer.py

🌿5 itsdangerous.timed

timed, fullname=itsdangerous.timed, file=itsdangerous\timed.py

🌿6 itsdangerous._json

_json, fullname=itsdangerous._json, file=itsdangerous_json.py

🌿7 itsdangerous.url_safe

url_safe, fullname=itsdangerous.url_safe, file=itsdangerous\url_safe.py

🔵函数

🌿8 base64_decode(string: Union[str, bytes]) -> bytes

base64_decode(string: Union[str, bytes]) -> bytes, module=itsdangerous.encoding, line:28 at site-packages\itsdangerous\encoding.py

Base64解码url安全的字节或文本字符串。结果是字节。

🌿9 base64_encode(string: Union[str, bytes]) -> bytes

base64_encode(string: Union[str, bytes]) -> bytes, module=itsdangerous.encoding, line:20 at site-packages\itsdangerous\encoding.py

Base64编码一串字节或文本。生成的字节可以安全地用于url。

🌿10 want_bytes(s: Union[str, bytes], encoding: str = ‘utf-8’, errors: str = ‘strict’) -> bytes

want_bytes(s: Union[str, bytes], encoding: str = ‘utf-8’, errors: str = ‘strict’) -> bytes, module=itsdangerous.encoding, line:11 at site-packages\itsdangerous\encoding.py

🔵类

🌿11 itsdangerous.exc.BadData

BadData, itsdangerous.exc.BadData, module=itsdangerous.exc, line:8 at site-packages\itsdangerous\exc.py

如果遇到任何类型的坏数据将被引发。
    这是ItsDangerous定义的所有异常的基础。
    版本: 0.15

🌿12 itsdangerous.exc.BadHeader

BadHeader, itsdangerous.exc.BadHeader, module=itsdangerous.exc, line:67 at site-packages\itsdangerous\exc.py

如果带符号的标头在某种形式下无效,将被引发。
    这只会发生在带有签名头的序列化器上。
    版本: 0.24

🌿13 itsdangerous.exc.BadPayload

BadPayload, itsdangerous.exc.BadPayload, module=itsdangerous.exc, line:93 at site-packages\itsdangerous\exc.py

如果有效载荷无效将被引发。
    如果在无效签名的情况下加载了有效负载,或者序列化器和反序列化器之间不匹配,则可能发生这种情况。
    在加载过程中发生的原始异常被存储为 :attr:`original_error`。
    版本: 0.15

🌿14 itsdangerous.exc.BadSignature

BadSignature, itsdangerous.exc.BadSignature, module=itsdangerous.exc, line:23 at site-packages\itsdangerous\exc.py

如果签名不匹配将被引发。

🌿15 itsdangerous.exc.BadTimeSignature

BadTimeSignature, itsdangerous.exc.BadTimeSignature, module=itsdangerous.exc, line:37 at site-packages\itsdangerous\exc.py

如果基于时间的签名无效将被引发。这是 :class:`BadSignature` 的子类。

🌿16 itsdangerous.exc.SignatureExpired

SignatureExpired, itsdangerous.exc.SignatureExpired, module=itsdangerous.exc, line:61 at site-packages\itsdangerous\exc.py

如果签名时间戳大于 ``max_age`` 将被引发。这是 :exc:`BadTimeSignature` 的子类。

🌿17 itsdangerous.serializer.Serializer

Serializer, itsdangerous.serializer.Serializer, module=itsdangerous.serializer, line:25 at site-packages\itsdangerous\serializer.py

序列化器包装一个 :class:`~itsdangerous.signer.Signer`。
    启用序列化和安全地签名字节以外的数据。它可以取消签名以验证数据没有被更改。
    序列化器提供 :meth:`dumps` 和 :meth:`loads`,类似于 :mod:`json`,默认情况下在内部使用 :mod:`json`将数据序列化为字节。
    密钥应该是一个随机的“字节”字符串,不应该保存到代码或版本控制中。在不同的语境中,应该使用不同的盐来区分手语。
    有关密钥和salt的安全性的信息,请参阅 :doc:`/concepts`。
    :param secret_key: 签名和验证的秘钥。可以是一个键列表,从旧的到最新的,支持键轮换。
    :param salt: 与 ``secret_key`` 组合的额外密钥,以区分不同上下文中的签名。
    :param serializer: 一个对象,提供 ``dumps`` 和 ``loads``方法,用于将数据序列化为字符串。默认为 :attr:`default_serializer`, 默认为 :mod:`json`。
    :param serializer_kwargs: 调用``serializer.dumps``时要传递的关键字参数。
    :param signer: 一个 ``Signer``类, 在签名数据时要实例化的。默认为:`default_signer`, 默认为:class:`~itsdangerous.signer.Signer`。
    :param signer_kwargs: 实例化``Signer``类时要传递的关键字参数。
    :param fallback_signers: 使用默认签名者取消签名失败时要尝试的签名者参数列表。每个项可以是 ``signer_kwargs``, 一个类,或列表``(signer, signer_kwargs)``.默认为:attr:`default_fallback_signers`。
    版本: 2.0
        增加了通过传递一个列表给``secret_key``
    版本: 2.0
        从``default_fallback_signers``中删除了默认的SHA-512回退签名人。
    版本: 1.1
        增加了对 ``fallback_signers`` 的支持,并配置了默认的SHA-512回退。这个后退是为使用1.0.0版本的用户提供的,该版本默认为SHA-512。
    版本: 0.14
        ``signer`` 和 ``signer_kwargs`` 参数被添加到构造函数中。
data

1 default_fallback_signers=[] kind:data type:list class:<class ‘itsdangerous.serializer.Serializer’>
2 default_serializer=<module ‘json’ from ‘…\lib\json\init.py’> kind:data type:module class:<class ‘itsdangerous.serializer.Serializer’>
3 default_signer=<class ‘itsdangerous.signer.Signer’> kind:data type:type class:<class ‘itsdangerous.serializer.Serializer’>

property

4 secret_key=<property object at 0x0000020CD8357138> kind:property type:property class:<class ‘itsdangerous.serializer.Serializer’>

method
5 dump(self, obj: _t.Any, f: _t.IO, salt: _t_opt_str_bytes = None) -> None:

kind=method class=Serializer objtype=function line:215 at …\lib\site-packages\itsdangerous\serializer.py

比如:meth:`dumps`,但是转储到一个文件中。文件句柄必须与内部序列化器所期望的兼容。
6 dump_payload(self, obj: _t.Any) -> bytes:

kind=method class=Serializer objtype=function line:164 at …\lib\site-packages\itsdangerous\serializer.py

转储已编码的对象。返回值总是字节。如果内部序列化器返回文本,则该值将被编码为UTF-8。
7 dumps(self, obj: _t.Any, salt: _t_opt_str_bytes = None) -> _t_str_bytes:

kind=method class=Serializer objtype=function line:202 at …\lib\site-packages\itsdangerous\serializer.py

返回用内部序列化器序列化的带符号字符串。
    返回值可以是字节或unicode字符串,具体取决于内部序列化器的格式。
8 iter_unsigners(self, salt: _t_opt_str_bytes = None) -> _t.Iterator[Signer]:

kind=method class=Serializer objtype=function line:180 at …\lib\site-packages\itsdangerous\serializer.py

遍历要尝试取消签名的所有签名者。
    从配置的签名者开始,然后构造 ``fallback_signers`` 中指定的每个签名者。
9 load(self, f: _t.IO, salt: _t_opt_str_bytes = None) -> _t.Any:

kind=method class=Serializer objtype=function line:238 at …\lib\site-packages\itsdangerous\serializer.py

像 :meth:`loads` 一样,但是是从文件加载的。
10 load_payload(

kind=method class=Serializer objtype=function line:137 at …\lib\site-packages\itsdangerous\serializer.py

加载已编码的对象。
    这个函数引发 :class:`.BadPayload`,如果有效载荷无效。
    ``serializer``参数可用于覆盖存储在类上的序列化器。编码的``payload``应该始终是字节。
11 load_unsafe(self, f: _t.IO, salt: _t_opt_str_bytes = None) -> _t_load_unsafe:

kind=method class=Serializer objtype=function line:290 at …\lib\site-packages\itsdangerous\serializer.py

比如 :meth:`loads_unsafe` ,但从文件加载。
    版本: 0.15
12 loads(

kind=method class=Serializer objtype=function line:221 at …\lib\site-packages\itsdangerous\serializer.py

与 :meth:`dumps` 相反。
    如果签名验证失败,则为抛出 :exc:`.BadSignature` 。
13 loads_unsafe(

kind=method class=Serializer objtype=function line:242 at …\lib\site-packages\itsdangerous\serializer.py

类似于 :meth:`loads` ,但不验证签名。根据序列化器的工作方式,使用这种方法可能非常危险。
    返回值是``(signature_valid, payload)``而不仅仅是有效载荷。第一项将是一个布尔值,指示签名是否有效。
    这个函数永远不会失败。如果你知道你的序列化器模块是不可利用的(例如,不要将它与pickle序列化器一起使用),则只能将其用于调试。
    版本: 0.15
14 make_signer(self, salt: _t_opt_str_bytes = None) -> Signer:

kind=method class=Serializer objtype=function line:171 at …\lib\site-packages\itsdangerous\serializer.py

创建要使用的签名器的新实例。
    默认实现使用 :class:`.Signer` 基类。

🌿18 itsdangerous.signer.HMACAlgorithm

HMACAlgorithm, itsdangerous.signer.HMACAlgorithm, module=itsdangerous.signer, line:41 at site-packages\itsdangerous\signer.py

提供hmac签名生成功能。
method
1 get_signature(self, key: bytes, value: bytes) -> bytes:

kind=method class=HMACAlgorithm objtype=function line:55 at …\lib\site-packages\itsdangerous\signer.py

static method
2 default_digest_method()

kind=static method class=HMACAlgorithm objtype=staticmethod

staticmethod(function) -> method将函数转换为静态方法。

🌿19 itsdangerous.signer.NoneAlgorithm

NoneAlgorithm, itsdangerous.signer.NoneAlgorithm, module=itsdangerous.signer, line:32 at site-packages\itsdangerous\signer.py

提供不执行任何签名并返回空签名的算法。
method
1 get_signature(self, key: bytes, value: bytes) -> bytes:

kind=method class=NoneAlgorithm objtype=function line:37 at …\lib\site-packages\itsdangerous\signer.py

🌿20 itsdangerous.signer.Signer

Signer, itsdangerous.signer.Signer, module=itsdangerous.signer, line:67 at site-packages\itsdangerous\signer.py

签名者对字节进行安全签名,然后取消签名以验证值未被更改。
    密钥应该是一个随机的“字节”字符串,不应该保存到代码或版本控制中。
    在不同的语境中,应该使用不同的盐来区分上下文。有关密钥和盐的安全性的信息,请参阅 :doc:`/concepts`。
    :参数secret key:
        :param secret_key: 签名和验证的秘钥。可以是一个键列表,从旧的到最新的,支持键轮换。
        :param salt: 与 ``secret_key`` 组合的额外密钥,以区分不同上下文中的签名。
        :param sep: 签名与值之间的分隔符
        :param key_derivation: 如何从密钥和盐中派生签名密钥。可能的值是 ``concat``, ``django-concat`` 或 ``hmac``。
                                默认为 :attr:`default_key_derivation`, 默认为 ``django-concat``。
        :param digest_method: 生成HMAC签名时使用的哈希函数。默认为 :attr:`default_digest_method`, 默认为 :func:`hashlib.sha1`. 
                                请注意,在HMAC中间使用散列时,单独使用散列的安全性并不适用。
        :param algorithm: 一个实例 :class:`SigningAlgorithm` 来代替用``digest_method方法``构建一个默认的 :class:`HMACAlgorithm`。
    版本: 2.0
        通过传递一个列表给 ``secret_key``增加了对键轮换的支持。
    版本: 0.18
        ``algorithm`` 被添加为类构造函数的参数。
    版本: 0.14
        ``key_derivation`` 和 ``digest_method`` 被添加为类构造函数的参数。
data

1 default_key_derivation=django-concat kind:data type:str class:<class ‘itsdangerous.signer.Signer’>

property

2 secret_key=<property object at 0x0000020CD8352BD8> kind:property type:property class:<class ‘itsdangerous.signer.Signer’>

method
3 derive_key(self, secret_key: _t_opt_str_bytes = None) -> bytes:

kind=method class=Signer objtype=function line:173 at …\lib\site-packages\itsdangerous\signer.py

调用此方法来派生密钥。
    这里可以覆盖默认的键派生选择。
    密钥派生不打算用作从短密码中生成复杂密钥的安全方法。
    相反,您应该使用大型随机密钥。
        :param secret_key: 要派生的特定密钥。默认为 :attr:`secret_keys`。
        版本: 2.0
            增加了 ``secret_key`` 参数。
4 get_signature(self, value: _t_str_bytes) -> bytes:

kind=method class=Signer objtype=function line:206 at …\lib\site-packages\itsdangerous\signer.py

返回给定值的签名。
5 sign(self, value: _t_str_bytes) -> bytes:

kind=method class=Signer objtype=function line:213 at …\lib\site-packages\itsdangerous\signer.py

给给定字符串加符号。
6 unsign(self, signed_value: _t_str_bytes) -> bytes:

kind=method class=Signer objtype=function line:235 at …\lib\site-packages\itsdangerous\signer.py

取消给定字符串的符号。
7 validate(self, signed_value: _t_str_bytes) -> bool:

kind=method class=Signer objtype=function line:249 at …\lib\site-packages\itsdangerous\signer.py

仅验证给定的带符号值。如果签名存在并且有效,则返回``True``。
8 verify_signature(self, value: _t_str_bytes, sig: _t_str_bytes) -> bool:

kind=method class=Signer objtype=function line:218 at …\lib\site-packages\itsdangerous\signer.py

验证给定值的签名。
static method
9 default_digest_method()

kind=static method class=Signer objtype=staticmethod

staticmethod(function) -> method将函数转换为静态方法。

🌿21 itsdangerous.timed.TimedSerializer

TimedSerializer, itsdangerous.timed.TimedSerializer, module=itsdangerous.timed, line:176 at site-packages\itsdangerous\timed.py

用法 :class:`TimestampSigner`代替默认的 :class:`.Signer`。
data

1 default_signer=<class ‘itsdangerous.timed.TimestampSigner’> kind:data type:type class:<class ‘itsdangerous.timed.TimedSerializer’>

method
2 iter_unsigners(

kind=method class=TimedSerializer objtype=function line:183 at …\lib\site-packages\itsdangerous\timed.py

3 loads(

kind=method class=TimedSerializer objtype=function line:191 at …\lib\site-packages\itsdangerous\timed.py

与 :meth:`dumps`相反,引发 :exc:`.BadSignature`,如果签名验证失败。
如果提供了``max_age`` ,它将确保签名不会超过该时间(以秒为单位)。
如果签名过期,引发:exc:`.SignatureExpired`。所有参数都转发给签名者的 :meth:`~TimestampSigner.unsign` 方法。
4 loads_unsafe(

kind=method class=TimedSerializer objtype=function line:228 at …\lib\site-packages\itsdangerous\timed.py

🌿22 itsdangerous.timed.TimestampSigner

TimestampSigner, itsdangerous.timed.TimestampSigner, module=itsdangerous.timed, line:26 at site-packages\itsdangerous\timed.py

像常规的:class:`.Signer`一样工作,还记录了签名的时间,并可用于使签名过期。
    :meth:`unsign`方法可以引发:exc:`.SignatureExpired`。
    如果由于签名过期而取消签名失败。
method
1 get_timestamp(self) -> int:

kind=method class=TimestampSigner objtype=function line:33 at …\lib\site-packages\itsdangerous\timed.py

返回当前时间戳。函数必须返回一个整数。
2 sign(self, value: _t_str_bytes) -> bytes:

kind=method class=TimestampSigner objtype=function line:49 at …\lib\site-packages\itsdangerous\timed.py

对给定字符串进行签名,并附加时间信息。
3 timestamp_to_datetime(self, ts: int) -> datetime:

kind=method class=TimestampSigner objtype=function line:39 at …\lib\site-packages\itsdangerous\timed.py

将时间戳从:meth:`get_timestamp`转换为一个:class`datetime.datetime`。
    版本: 2.0
    时间戳返回为UTC的时区感知 ``datetime``,而不是假定为UTC的 ``datetime``。
4 unsign(

kind=method class=TimestampSigner objtype=function line:61 at …\lib\site-packages\itsdangerous\timed.py

就像普通的:meth:`.Signer.unsign`,但也可以验证时间。有关一般行为,请参阅类的基文档字符串。
    如果``return timestamp``为``True``,签名的时间戳将作为一个 :class:`datetime.datetime`返回。
    版本: 2.0
        时间戳返回为UTC的时区感知 ``datetime``,而不是假定为UTC的 ``datetime``。
5 validate(self, signed_value: _t_str_bytes, max_age: _t_opt_int = None) -> bool:

kind=method class=TimestampSigner objtype=function line:166 at …\lib\site-packages\itsdangerous\timed.py

仅验证给定的带符号值。如果签名存在并且有效,则返回``True``。

🌿23 itsdangerous.url_safe.URLSafeSerializer

URLSafeSerializer, itsdangerous.url_safe.URLSafeSerializer, module=itsdangerous.url_safe, line:12 at site-packages\itsdangerous\url_safe.py

类似于 :class:`.Serializer`,但转储并加载到一个URL安全字符串,该字符串由字母的大小写字符以及``'_'``, ``'-'`` 和 ``'.'``组成。

🌿24 itsdangerous.url_safe.URLSafeTimedSerializer

URLSafeTimedSerializer, itsdangerous.url_safe.URLSafeTimedSerializer, module=itsdangerous.url_safe, line:76 at site-packages\itsdangerous\url_safe.py

类似于 :class:`.TimedSerializer`,但会将其转储并加载到URL安全字符串中,该字符串由字母的大小写字符以及``'_'``, ``'-'`` 和 ``'.'``组成。

🔵私有或局部

25 _json <module ‘itsdangerous._json’ from ‘…\lib\site-packages\itsdangerous\_json.py’>

☘️【itsdangerous.exc】

exc, fullname=itsdangerous.exc, file=itsdangerous\exc.py

☘️【itsdangerous.encoding】

encoding, fullname=itsdangerous.encoding, file=itsdangerous\encoding.py

☘️【itsdangerous.signer】

signer, fullname=itsdangerous.signer, file=itsdangerous\signer.py

☘️【itsdangerous.serializer】

serializer, fullname=itsdangerous.serializer, file=itsdangerous\serializer.py

☘️【itsdangerous.timed】

timed, fullname=itsdangerous.timed, file=itsdangerous\timed.py

☘️【itsdangerous._json】

_json, fullname=itsdangerous._json, file=itsdangerous_json.py

☘️【itsdangerous.url_safe】

url_safe, fullname=itsdangerous.url_safe, file=itsdangerous\url_safe.py

☘️【typing】

typing, fullname=typing, file=typing.py

☘️【base64】

base64, fullname=base64, file=base64.py

☘️【string】

string, fullname=string, file=string.py

☘️【struct】

struct, fullname=struct, file=struct.py

☘️【hashlib】

hashlib, fullname=hashlib, file=hashlib.py

☘️【hmac】

hmac, fullname=hmac, file=hmac.py

☘️【json】

json, fullname=json, file=json_init_.py

☘️【time】

time, fullname=time

☘️【zlib】

zlib, fullname=zlib

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AhcaoZhu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值