We have generated RSA public key by our java program to encrypt the data in C++ before transmitting it but when we use this key to encrypt the data using Microsoft encryption API, it doesn't accepts this key.
Do anyone has any ideas on this?
We have generated RSA public key by our java program to encrypt the data in C++ before transmitting it but when we use this key to encrypt the data using Microsoft encryption API, it doesn't accepts this key.
Do anyone has any ideas on this?
Microsoft 代码对其可以使用的 RSA 密钥有一些内在限制:它要求公钥长度(模数位长度)是 16 的倍数,并且公共指数必须适合 32 位无符号整数。
但是,大多数 RSA 密钥都符合这些限制条件,并且通常怀疑是编码/解码问题。Java 倾向于在任何地方都使用大端,因为:
另一方面,微软的 CryptoAPI 需要 little-endian。您可能以错误的顺序使用了公共模数。
以我的经验,RSA 密钥的序列化在 Java 和 MS 之间是不同的。
但是,我所做的是使用 Bouncy Castle API 来执行此操作,因为他们有 Java 和 .NET 版本的库。
有关更多选项,您可以查看以下问题: RSA: How to generate private key in java and use it in C#?