Skip to main content
 首页 » 编程设计

python之为什么 'itsdangerous' 模块返回签名文本

2025年05月04日28duanxz

我想知道是否有人告诉我为什么“itsdangerous”模块将签名文本作为字符串的一部分返回。如:

>>> import itsdangerous 
>>>  
>>> secret = 'my-secret-key' 
>>> token = itsdangerous.TimedSerializer(secret) 
>>> token.dumps('my-user-id') 
'"my-user-id".Cj51kA.yuoSx6eK0LuuphWK0TlOBil2PM0' 

我想我可以做这样的事情来获取哈希:

token.dumps('my-user-id').split('.', 1)[1] 

...但令我惊讶的是,我什至需要首先这样做。事实上,文档没有明确提及这种行为,或者只是提供了一种去除签名文本的方法,这让我很紧张,怀疑我是否在做一些不安全的事情。预先感谢您阐明以下问题:

1) 图书馆这样做有充分的理由吗? 2) 什么是最安全的方法来确保我不会以纯文本形式返回编码字符串和哈希值?

请您参考如下方法:

itsdangerous 的目的不是加密您的数据,它只是一个检测篡改数据的简单工具。

... When you get the data back you can easily ensure that nobody tampered with it. 1

因此,您应该在使用此模块签名之前或之后自行加密。