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