歡迎光臨
每天分享高質量文章

.net core 使用RSA獲取私鑰證書並簽名

以前我們使用RSA加密主要是使用RSACryptoServiceProvider這個類,在.NET Core中也有這個類,但是這個類並不支援跨平臺,所以如果你是用這個類來進行加/解密在windows上執行是完全沒有錯誤的,但是隻要你一放到Linux下就會出現異常。

查閱資料得知,要解決這個問題,需要改用 System.Security.Cryptography.RSA.Create() 工廠方法,使用它之後,在 Windows 上建立的是 System.Security.Cryptography.RSACng 的實體,在 Mac 與 Linux 上建立的是 System.Security.Cryptography.RSAOpenSsl 的實體,它們都繼承自 System.Security.Cryptography.RSA 抽象類。

這裡要講一下RSA2演演算法。

什麼是RSA2 ?RSA2 是在原來SHA1WithRSA簽名演演算法的基礎上,新增了支援SHA256WithRSA的簽名演演算法。該演演算法比SHA1WithRSA有更強的安全能力。

RSA2 SHA256WithRSA (強烈推薦使用),強制要求RSA金鑰的長度至少為2048
RSA SHA1WithRSA 對RSA金鑰的長度不限制,推薦使用2048位以上

簽名的作用:保證資料完整性,機密性和傳送方角色的不可抵賴性

看下程式碼:


HashAlgorithmName.SHA256  //獲取表示“SHA256”的雜湊演演算法名稱。
RSASignaturePadding.Pkcs1 //獲取使用 PKCS #1 v1.5 填充樣式的物件。

已同步到看一看
贊(0)

分享創造快樂