在一份文件中,我看到了以下代码:
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(“<RSAKeyValue><Modulus>oQRshGhLf2Fh...”);
byte[] signMain = rsa.SignData(Encoding.UTF8.GetBytes(data), new
SHA1CryptoServiceProvider());
sign = Convert.ToBase64String(signMain);
似乎它首先用RSA
和SHA1
对数据进行签名,然后对其进行base64编码。它从XML中读取RSA密钥。你知道吗
我用python对数据进行签名的代码如下:
key = open('priv_key.pem', "r").read()
rsakey = RSA.importKey(key)
signer = PKCS1_v1_5.new(rsakey)
digest = SHA256.new()
digest.update(data)
sign = signer.sign(digest)
首先,我将XML
转换为PEM
,然后使用上面的代码对数据进行签名。你知道吗
问题是.NET
转换的输出与Python
中的on不同。它没有按我想要的方式工作。如何在python中准确地转换.NET
代码?我做错了什么。你知道吗
Python说您使用了SHA-2-256(
SHA256.new()
),而在.NET中使用了SHA-1(-160)(new SHA1CryptoServiceProvider()
)。有人假设,如果你在两边都使用相同的算法,它是等价的。你知道吗相关问题 更多 >
编程相关推荐