You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PyCryptodome中生成固定RSA PKCS1v1.5签名?

实现Crypto/Cryptodome与cryptography一致的固定PKCS#1 v1.5签名

问题原因:Cryptodome的PKCS1_v1_5.sign()方法默认会添加随机盐(属于非标准扩展行为),而cryptography库的实现严格遵循PKCS#1 v1.5标准的确定性签名流程,因此每次签名结果固定。

要实现与cryptography一致的固定签名效果,只需在调用sign()方法时指定rand_func=None,禁用随机盐即可:

from Crypto.Hash import SHA256
from Crypto.Signature import PKCS1_v1_5

dataHash = SHA256.new(data)
# 指定rand_func=None,禁用随机盐,生成确定性签名
signature = PKCS1_v1_5.new(privateKey).sign(dataHash, rand_func=None)

这样修改后,签名过程会严格按照PKCS#1 v1.5标准执行,每次签名结果固定,与cryptography库的输出完全匹配。

内容的提问来源于stack exchange,提问作者smdbh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 04:25:04