V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
smdbh
V2EX  ›  问与答

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

  •  
  •   smdbh · 67 天前 · 548 次点击
    这是一个创建于 67 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我的目的是签名结果和服务器结果一致 我听说签名可能加随机数,每次结果都不一样,但实际中,我先使用了 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 一样每次生成不变签名的函数实现方法?谢谢

    1 条回复    2024-10-18 15:53:55 +08:00
    GiggleSmile
        1
    GiggleSmile  
       66 天前
    RFC8017 中 pkcs1.5 签名方案,没有使用随机数,即相同数据,签名值相同。pycryptodome 库中的 pkcs1.5 的签名算法,源码实现与 rfc 规定一致,我跑几遍,签名值均未变化。也就是说,你自己写的代码有问题。单独调没任何问题,而且使用 cryptography 库签出来的值可以与 cryptodome 库对的上。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1027 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 19:49 · PVG 03:49 · LAX 11:49 · JFK 14:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.