为什么“itsdangerous”模块返回签名文本?

2024-10-03 09:17:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否有人告诉我为什么'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) 什么是最安全的方法来确保我不返回明文编码的字符串和散列?你知道吗


Tags: 模块方法key字符串文本importtokenid
2条回答

它的目的不是加密您的数据,它只是一个简单的工具来检测篡改数据。你知道吗

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

因此,您应该自己加密它,在这个模块签名之前或之后。你知道吗

itsdangerous对文本或任何其他数据进行签名,这样就可以通过不安全的通道传输,然后在另一端或从存储它的数据库检索时检查它是否未被更改/篡改。你知道吗

因此,它创建一个签名,将其添加到已签名的数据中,然后在检索时检查它是否未被篡改。对方需要数据和签名。

相关问题 更多 >