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

hi3rlvi2  于 2023-06-04  发布在  Python
关注(0)|答案(2)|浏览(96)

我想知道是否有人能告诉我为什么'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)什么是最安全的方法,以确保我不返回纯文本的编码字符串沿着哈希?

ddrv8njm

ddrv8njm1#

它的目的不是加密你的数据,它只是一个简单的工具来检测篡改的数据。
当您取回数据时,您可以轻松地确保没有人篡改它。1
因此,您应该在此模块对其进行签名之前或之后,自己对其进行加密。

pbpqsu0x

pbpqsu0x2#

itsdangerous对文本或任何其他数据进行签名,以便它可以通过不安全的通道传输,然后在另一端进行检查,或者从存储它的数据库中检索,以确保它没有被更改/篡改。
所以它创建一个签名,将其添加到签名的数据中,然后在检索时检查它是否未被篡改。对方需要数据和签名

相关问题