c++ - C# 中的 RSA C++ 等价物

标签 c++ rsa

几天来,我一直在尝试在 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/

相关文章:

c++ - 为什么我会收到此错误消息 : "undefined reference to ` PerformChat(char*, char*, char*, char*, char* )'"

c++ - 幻影类型是否与原始类型具有相同的对齐方式?

security - Web加密 : Safe conversion from RSA-OAEP to RSA-PSS

Python - 如何通过套接字发送 rsa.key.PublicKey 对象?

xml - cocoa 中的 RSA 和 xml 格式的公钥

c++ - 跳过for循环,为什么?

c++ - 无法理解术语 'static'

c++ - Unresolved external symbol - 指南中有错误?

使用 .NET RSAKeyValue XML 字符串时,Java RSA 加密不起作用

RSA 求公共(public)指数的倒数