在Python 3中使用RSA,需要对消息进行签名(不对消息进行哈希处理)

Using RSA in Python 3, need to sign a message (without hashing the message)

Python 我正在使用的 3 个库:RSA stuvel

在这个库中,签名函数首先生成一个散列,然后对其进行签名。有什么方法可以让它在不先​​对消息进行哈希处理的情况下对消息进行签名?

或者有任何其他可用的库可以做同样的事情吗?

有函数here: Package Crypto :: Package PublicKey :: Module RSA :: Class _RSAobj sign

但请注意,通常签名生成是基于散列的,由指示散列的 DER 编码结构扩展,依次填充并转换为数字以形成实际模幂运算的输入。这个方法只是执行最后一步;您必须自己做其他的,请注意,从安全角度来看,它们是必需的

这都在PKCS#1规范中指定了。请注意,这是棘手的事情,您可能希望从开源实现中复制它。或者您可以只提供一个散列,这是一个非常好的主意 - 首先对消息进行散列。

还有撤回的ISO/IEC 9796,它描述了带有消息恢复的签名,这就是您可能想要的。我没有直接在 Python 中看到实现。即使你找到了库,在使用库之前也要确定你在做什么。

祝你好运!