我确实有一个由 .NET 类生成的私有 RSAKey(XML 格式)。这些密钥通常用于对 URL 的某些部分进行签名。我正在尝试通过 Python 使用现有密钥对这些 URL 进行签名,因为我现在正在基于 Linux 的环境中工作。RSAKey 的结构如下所示:
RSAKeyValue,Modulus,Exponent,P,Q,DP,InverseQ,D represented in XML format.
使用 C#,我只需实例化一个 RSACryptoServiceProvider 对象并调用 SignData(bytes, new SHA1CryptoServiceProvider()),就完成了。我已经尝试了几天在 Linux 环境中使用 Python 复制这个过程,但没有任何运气。我提取模数和指数,base64 解码,并从中创建字节数组。我还更改了字节顺序。我假设我可以使用 M2Crypto 并调用 RSA.new_pub_key((e,n)) 并使用该密钥进行签名,但无论我做什么我都无法创建正确的密钥,或者签名过程没有不工作。
我的问题是:
- 是否可以使用通过 .NET 生成的 XML 格式的 RSAKey,并通过 Python(M2Crypto 或任何其他库都可以)对数据进行签名,结果与 .NET 中的结果完全相同?如果是这样,这样做的确切步骤是什么?
我为这个冗长的问题道歉。谢谢你的帮助。