smdbh
V2EX  ›  问与答

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

  •  
  •   smdbh · Oct 17, 2024 · 5380 views
    This topic created in 615 days ago, the information mentioned may be changed or developed.

    我的目的是签名结果和服务器结果一致 我听说签名可能加随机数,每次结果都不一样,但实际中,我先使用了 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 replies    2024-10-18 15:53:55 +08:00
    GiggleSmile
        1
    GiggleSmile  
       Oct 18, 2024
    RFC8017 中 pkcs1.5 签名方案,没有使用随机数,即相同数据,签名值相同。pycryptodome 库中的 pkcs1.5 的签名算法,源码实现与 rfc 规定一致,我跑几遍,签名值均未变化。也就是说,你自己写的代码有问题。单独调没任何问题,而且使用 cryptography 库签出来的值可以与 cryptodome 库对的上。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   883 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 21:24 · PVG 05:24 · LAX 14:24 · JFK 17:24
    ♥ Do have faith in what you're doing.