几天来,我一直在尝试在 C++ 中获得与此 C# 代码等效的代码,但没有成功。
这是我的 C# 代码:
RSAParameters rsaParams = new RSAParameters();
rsaParams.Modulus = someByteArray;
rsaParams.Exponent = someByteArray1;
rsaParams.D = someByteArray2;
rsaParams.DP = someByteArray3;
rsaParams.DQ = someByteArray4;
rsaParams.P = someByteArray5;
rsaParams.Q = someByteArray6;
rsaParams.InverseQ = someByteArray7;
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
rsa.ImportParameters(rsaParams);
byte[] encryptedData = rsa.Encrypt(toEncrypt, false);
}
我只想得到完全相同的结果,但在 C++(跨平台)中。我看过很多库/类,但它们似乎并不合理。首先,Crypto++ 很棒,但我想要的只是 RSA,所以在我看来,拥有他们所有的散列/加密/任何其他算法都是一种浪费。我找到了 this类,我认为它很好,因为它只是 RSA,而且非常小。问题是,参数要么没有与 C# 参数命名,要么不支持它。我觉得我不应该为了实现它而学习RSA中每个参数的含义,因为我只想在这里完成一个简单的任务。谢谢。
最佳答案
RSAParameters 结构的属性基于 Chinese Remainder Algorithm . 你看过OpenSSL了吗?密码库?
The RSA structure consists of several BIGNUM components. It can contain public as well as private RSA keys:
struct
{
BIGNUM *n; // public modulus
BIGNUM *e; // public exponent
BIGNUM *d; // private exponent
BIGNUM *p; // secret prime factor
BIGNUM *q; // secret prime factor
BIGNUM *dmp1; // d mod (p-1)
BIGNUM *dmq1; // d mod (q-1)
BIGNUM *iqmp; // q^-1 mod p
// ...
};
RSA
关于c++ - C# 中的 RSA C++ 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11786968/