c# - 将代码从 C++ 移植到 C# - 使用 RSA PKCS#1 私钥加密

标签 c# c++ encryption-asymmetric

我正在尝试将这段代码从 C++ 移植到 C#:

...
strPrivateKey = "someBase64EncodedPrivateKey";
long sizeKey = DecodeBase64(strPrivateKey, pKey);
const unsigned char* _pKey = pKey;
d2i_RSAPrivateKey(&pRSA, &_pKey, sizeKey);
...

RSA_private_encrypt(sizeOfMessage, pMessage, pSignature, pRSA, RSA_PKCS1_PADDING);

...

到目前为止,这是我的代码:

var strPrivateKey = "someBase64EncodedPrivateKey";
var bytes = Convert.FromBase64String(strPrivateKey);

var rsa = new RSACryptoServiceProvider();

// How to set the private key to the rsa object?!

byte[] someDataToEncrypt = /* Set the data to encrypt */;
var encryptedData = rsa.Encrypt(someDataToEncrypt, false);

编辑: 我不确定这是否是我应该引用的类(class)。

谢谢

最佳答案

可以使用 ImportParameters 将 RSAParameters (http://msdn.microsoft.com/en-us/library/system.security.cryptography.rsaparameters.aspx) 提供给 RSACryptoServiceProvider 类方法。您可以在 RSAParameters 结构中对 key 进行编码。

关于c# - 将代码从 C++ 移植到 C# - 使用 RSA PKCS#1 私钥加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5917425/

相关文章:

java - 使用电子邮件创建 bouncycaSTLe PGPSecretKey

java - 任何关于 java 公钥加密的教程?

c# - 错误地将莫斯科时间转换为 UTC

C#:用 *single*\替换 single/

c# - 在关闭不同线程时在其他窗口后面发送的应用程序窗口 (C#)

c# - .net Web 服务最佳实践...SRP?

c++ - 将代码编译为单个自动合并文件,以允许编译器更好地优化代码

c++ - MSXML6 中的第一次机会异常

c++ - << 运算符重写为 cout int 和 double 值

cryptography - 是否应该为此任务使用加密消息语法 (CMS)?