簡體   English   中英

如何直接將(RSACryptoServiceProvider的)RSAParameters設置為RSA公鑰

[英]How Can I Set RSAParameters (of RSACryptoServiceProvider) to an RSA Public Key Directly

創建必要的驗證參數以便調用JwtSecurityTokenHandler ValidateToken()...

我知道我可以這樣做:

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.ImportParameters(new RSAParameters() 
    {                
        Modulus = "",
        Exponent = ""
    });

var validationParameters = new TokenValidationParameters
    {
        IssuerSigningKey = new RsaSecurityKey(rsa)
    };

我想直接設置公鑰,而不是分別設置模量和指數。 如何才能做到這一點?

如果您保存的密鑰看起來像xmldsig RSAKeyValue( <RSAKeyValue><Modulus>base64</Modulus><Exponent>base64</Exponent></RSAKeyValue> ),並且您不在.NET Core上,則可以使用rsa.FromXmlString(keyString)

如果您保存的密鑰格式更改為CAPI Blob的byte[]表示形式,則可以使用rsa.ImportCspBlob(keyBlob)

如果您保存的密鑰格式更改為CNG Blob的byte[]表示形式,則可以使用new RSACng(CngKey.Import(blob, blobType))

否則,您將擁有最少的代碼,並具有以下幾點想法:

  • 您可以創建一個函數從存儲格式中構建RSAParameters。
  • 將本地存儲格式更改為兩個陣列。
  • 將您的硬編碼格式更改為僅是RSAParameters對象初始化器,您可以從中多次導入...

暫無
暫無

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

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