我使用OpenSSL.Net生成一个OpenSSL RSA公钥和私钥。但是,我似乎无法找到一种用给定的私钥解密数据的方法。我知道如果我调用生成密钥,然后相应的方法来加密和解密数据,它工作正常。但是,如果我试图从给定公钥的外部源解密某个内容,那么如何使用该密钥解密。用现有密钥解密使用OpenSSL.NET的RSA
注意:请不要给出不使用OpenSSL.NET的示例。 Microsoft Cryptographic提供程序远远低于OpenSSL,并且不符合我的速度要求。
谢谢!
public class AsymmetricKeyResult
{
public string PublicKey { get; set; }
public string PrivateKey { get; set; }
public AsymmetricKeyResult(string publicKey, string privateKey)
{
this.PublicKey = publicKey;
this.PrivateKey = privateKey;
}
}
public static AsymmetricKeyResult GenerateAsymmetricKeys(int keyLength)
{
RSA rsa = new RSA();
rsa.GenerateKeys(keyLength, 0x10021, null, null);
AsymmetricKeyResult kResult = new AsymmetricKeyResult(rsa.PublicKeyAsPEM, rsa.PrivateKeyAsPEM);
return kResult;
}
我有带--- BEGIN RSA公钥---如何将其转换为上面的格式开始的关键? – abhithakur88
*“如何将其转换为上述格式?”* - 在OpenSSL中使用'* _PUBKEY'函数。请参阅[我如何在两种公钥格式之间转换,一个是“BEGIN RSA PUBLIC KEY”,另一个是“BEGIN PUBLIC KEY”](http://stackoverflow.com/q/18039401)和 – jww
我听不懂,我认为我们必须使用公钥解密和私钥加密? –