在.net core 中 使用 RSA 加簽的時候 使用pfx證書檔案加簽
Unable to cast object of type 'System.Security.Cryptography.RSACng' to type 'System.Security.Cryptography.RSACryptoServiceProvider'.
try
{
X509Certificate2 pc = new X509Certificate2(AppDomain.CurrentDomain.BaseDirectory + Config.PrivateLucPath, Config.PrivateLucPwd);
//OpenSSL.X509Certificate2Provider.BaseCertificateProvider fromFileProvider = new ba
RSACryptoServiceProvider p = (RSACryptoServiceProvider) pc.PrivateKey;
RSA p = (RSA)pc.PrivateKey;
byte[] enBytes = p.SignData(Encoding.UTF8.GetBytes(value),HashAlgorithmName.SHA1,RSASignaturePadding.Pkcs1);
p.Dispose();
return Convert.ToBase64String(enBytes);
}
catch (Exception e)
{
//處理例外,這里拋例外 Unable to cast object of type 'System.Security.Cryptography.RSACng' to type 'System.Security.Cryptography.RSACryptoServiceProvider'.
}
return string.Empty;
請問各位牛人怎么處理?
uj5u.com熱心網友回復:
沒人看到么
uj5u.com熱心網友回復:
你開發不看參考嗎?X509Certificate2.PrivateKey的型別是*AsymmetricAlgorithm*。
AsymmetricAlgorithm可能有如下繼承:
- DSA
- ECDiffieHellman
- ECDsa
- RSA
而RSA的具體實作有(當前):
- RSACng
- RSACryptoServiceProvider
- RSAOpenSsl
這里不討論“使用pfx證書”來匯入密鑰是否合適。但對你的代碼來說,你要判斷PrivateKey是否RSA,如果是,使用RSA抽象類來簽署,而不是盲目使用RSACryptoServiceProvider。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/28011.html
標籤:C#
