M2Crypto 和 OpenSSL CLI 似乎没有创建相同的数字签名。这是我在 Python 中使用的代码:
import M2Crypto
rsa = M2Crypto.RSA.load_key("privkey.pem")
open("sig_m2crypto", "w").write(rsa.sign("md5-digest", "md5"))
这是 OpenSSL 的命令行:
echo "md5-digest" | openssl rsautl -sign -inkey privkey.pem > sig_openssl
相同的输入,和的结果sig_m2crypto
总是sig_openssl
不同的。意义在于我无法验证使用 M2Crypto 和 OpenSSL 生成的签名,反之亦然。
我的代码中是否缺少任何使它们彼此不兼容的内容?
附加信息:我在 Windows 7 下使用 M2Crypto 0.21.1 和 OpenSSL 1.0.0。