我想知道是否有人能告诉我为什么'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)什么是最安全的方法,以确保我不返回纯文本的编码字符串沿着哈希?
2条答案
按热度按时间ddrv8njm1#
它的目的不是加密你的数据,它只是一个简单的工具来检测篡改的数据。
当您取回数据时,您可以轻松地确保没有人篡改它。1
因此,您应该在此模块对其进行签名之前或之后,自己对其进行加密。
pbpqsu0x2#
itsdangerous
对文本或任何其他数据进行签名,以便它可以通过不安全的通道传输,然后在另一端进行检查,或者从存储它的数据库中检索,以确保它没有被更改/篡改。所以它创建一个签名,将其添加到签名的数据中,然后在检索时检查它是否未被篡改。对方需要数据和签名