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

.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)

分享創造快樂