簡體   English   中英

使用先前生成的帶有.net框架的RSA公鑰/私鑰

[英]Using a previously generated RSA public/private key with the .net framework

我有一個預先存在的RSA加密公鑰/私鑰對,我需要在.net中使用。 我在網上找到的所有示例都演示了如何生成新的私有/公共對,然后加密/解密。 即。 這樣的事情:

const int PROVIDER_RSA_FULL = 1;
const string CONTAINER_NAME = "SpiderContainer";
CspParameters cspParams;
cspParams = new CspParameters(PROVIDER_RSA_FULL);
cspParams.KeyContainerName = CONTAINER_NAME;
cspParams.Flags = CspProviderFlags.UseMachineKeyStore;
cspParams.ProviderName = "Microsoft Strong Cryptographic Provider";
rsa = new RSACryptoServiceProvider(cspParams);
.....
rsa.encrypt(...)
rsa.decrypt(...)

可以看出,沒有用於指定預先存在的公鑰/私鑰的途徑。

誰會知道如何完成我想要做的事情? 任何幫助將非常感激。

干杯納倫

要使用現有密鑰,可以使用ImportParameters -method:

RSAParameters parameters = new RSAParameters()
parameters.Modulus = // ...
parameters.Exponent = // ...
RSA rsa = new RSACryptoServiceProvider();
rsa.ImportParameters(parameters);
rsa.Encrypt(/*...*/);

您也可以添加私有參數,以便將其用於解密或簽名。

為了告訴您如何從現有的keydata到參數,我們需要確切知道它們是如何編碼的。 嘗試向我們展示字符串(如果它是真正的密鑰,則用X替換大多數私鑰)。

我意識到這是一個非常古老的問題,但也許有人仍然看着這個......

現在,您可以以XML格式檢索/存儲密鑰(您可能也可以在以后的日子里找回)。

示例導入:

this.RSAKey = RSA.FromXmlString(xmlString: myRSAXMLKey);

示例導出:

this.RSAKey_XMLString = RSA.ToXmlString(includePrivateParameters: false);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM