请教一个 Python 密码库 cryptography/Cryptodome 签名的问题

35 天前
 smdbh

我的目的是签名结果和服务器结果一致 我听说签名可能加随机数,每次结果都不一样,但实际中,我先使用了 cryptography 库

   signature = privateKey.sign(data, padding.PKCS1v15(), hashes.SHA256())

每次结果都一致,且与服务器结果一致 , 我想简化 import ,都使用 Crypto 或 cryptodome ,使用 cryptdome 的代码

  dataHash = SHA256.new(data)
  signature = PKCS1_v1_5.new(privateKey).sign(dataHash)

结果每次都不一样,应该是由随机数的参与

我想问下 Crypto 或 cryptodome 等其他库能否有和 cryptography 一样每次生成不变签名的函数实现方法?谢谢

519 次点击
所在节点    问与答
1 条回复
GiggleSmile
34 天前
RFC8017 中 pkcs1.5 签名方案,没有使用随机数,即相同数据,签名值相同。pycryptodome 库中的 pkcs1.5 的签名算法,源码实现与 rfc 规定一致,我跑几遍,签名值均未变化。也就是说,你自己写的代码有问题。单独调没任何问题,而且使用 cryptography 库签出来的值可以与 cryptodome 库对的上。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1081290

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX