建议和反馈

请填写你的反馈内容

问答 > 密码学 > 问答详情
已解决

我可以使用RSACryptoServiceProvider公钥/私钥与Crypto ++互操作吗?10LK

我使用RSACryptoServiceProvider创建了一个公钥/私钥,并将其保存为XML。 我可以使用它来加密/解密/签名并验证.NET中的数据。

我有另一个应用程序,它可以在Linux服务器上运行。 我正在用C ++开发它,我正在使用Crypto ++来满足我的加密需求。

我想在这两个应用程序之间共享数据,但为此我需要将RSAParameters转换为Crypto ++可以理解的公钥/私钥。

如果更容易做的话,我也愿意将Crypto ++生成的转换公钥/私钥用于RSAParameters。

有任何想法吗?


2020-06-03
0
请先登陆或注册

OTC市场2020-06-03

最简单的方法可能是直接使用RSAParameters而不是通过XML。

只需使用您自己选择的格式将RSAParameters中包含的字节数组存储在文件中。 在C ++程序中读取字节数组并从中创建CryptoPP :: Integer 。 使用这些整数初始化RSAFunction (公钥)或InvertibleRSAFunction (私钥)。

相反的方式是类似的:即

RSAFunction publicKey = ...;

size_t modulusLength = publicKey.getModulus().ByteCount();
unsigned char * modulus = new unsigned char[modulusLength];
publicKey.getModulus().Encode(modulus, modulusLength);

// similarly with PublicExponent and remember to clean up the arrays.

并将数组传输到.NET应用程序,您可以使用它们来初始化RSAParameters。


投一票
评论(0)
赞赏(0)

求助中

解决了这个问题,预计可以帮助到

  • 0
  • 0
  • 7
  • 9
  • 2
邀请

感谢您的善举,每一次解答会成为新人的灯塔,回答被采纳后获得20算力和相应的LK币奖励