我使用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
我聽不懂,我認爲我們必須使用公鑰解密和私鑰加密? –