Python 3 lib我正在使用:RSA stuvel
在此库中,sign函数首先生成一个哈希,然后对其进行签名。我可以通过任何方式让它在不先散列它的情况下签署消息吗?
或者任何其他可用的库也可以这样做吗?
答案 0 :(得分:1)
有一个函数here: Package Crypto :: Package PublicKey :: Module RSA :: Class _RSAobj sign
。
但请注意,通常签名生成是通过散列进行扩展,由DER编码结构扩展,指示散列,然后将其填充并转换为数字以形成实际模幂运算的输入。这种方法只执行最后一步;你必须自己做其他的,并从安全角度注意它们是必需的。
这是PKCS#1规范中指定的全部内容。请注意,这是一个棘手的问题,您可能希望从开源实现中复制它。或者你可以提供一个哈希,这是一个非常好的主意 - 首先哈希消息。
还有缩回的ISO / IEC 9796,它描述了带有消息恢复的签名,这是您可能会追求的。我没有直接在Python中看到实现。即使你找到它,也要确保在使用库之前你正在做什么。
祝你好运!