从 c++ 移植代码到 c# - 使用 RSA PKCS#1 私钥加密
我正在尝试将这段代码从 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);
编辑: 我不确定这是否是我应该参考的课程。
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
RSAParameters (http://msdn.microsoft.com/en-us/library/system.security.cryptography.rsaparameters.aspx) 可以使用 ImportParameters 方法。您可以在 RSAParameters 结构中对密钥进行编码。
RSAParameters (http://msdn.microsoft.com/en-us/library/system.security.cryptography.rsaparameters.aspx) can be fed to the RSACryptoServiceProvider class using the ImportParameters method. You can encode the key within the RSAParameters structure.
通过添加来修复它:
最后,我使用 OpenSsl.NET 作为库。这篇文章最初解决了我的问题:
使用 OpenSSL.NET 和现有密钥解密 RSA
Fixed it by adding:
And finally, I used OpenSsl.NET as library. This post originally solved my problem:
Decrypting RSA using OpenSSL.NET with Existing Key