以前我們使用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 填充樣式的物件。
朋友會在“發現-看一看”看到你“在看”的內容