簡體   English   中英

加密庫?

[英]Encryption libraries?

我的任務是在 C# 中為公司項目實現 PKI 庫,但一直無法找到它的良好實現。 似乎有多個庫,並且許多指向 MSDN 庫的斷開鏈接已被刪除。 我見過有人使用 Crypt32.dll,有人構建自己的庫,有人使用 P/Invoke 訪問系統證書存儲,有人擴展內置庫,還有一些根本不適用於 C# 的示例(例如 Java 示例),和商業圖書館。

我的問題是,對於簡單的數據加密/解密,最推薦使用哪種實現/庫?

作為我計划使用它的一些背景,我只需要使用私鑰 (.pfx) 加密消息,並使用公鑰 (.cer) 解密。 在項目的這個級別不需要消息簽名和身份驗證,盡管將來可能需要。 我看到過對加密長度的引用,這讓我感到不安。 我們需要能夠加密任何長度的消息(當然,在合理范圍內!)。 這是我需要擔心的事情嗎,如果是,有沒有辦法解決?

如果可能的話,我寧願不將公鑰/私鑰存儲在 Windows 證書管理器中,但如果它使實現變得更加簡單,那就這樣吧。

我意識到 PKI 和加密是一個龐大而復雜的主題,但無論如何我希望有一個相對簡單的庫......(可以希望,對吧?)

謝謝!

好吧,您沒有提到內置類不能滿足您的需求,那么System.Security.Cryptography.RSACryptoServiceProvider呢?

它有大量合格的方法來非對稱加密/解密流。

有幾個教程/指南可以帶您一路走來:

通過谷歌可以找到無數更多。

更新:關於長度限制,如果您只是在加密和解密兩側實現相同的緩沖區算法,應該不會有任何問題。

Update2 :是的,我的示例是RSACryptoProvider ,但如果您需要公鑰/私鑰解決方案,則可以使用派生自System.Security.Cryptography.AsymmetricAlgorithm 的任何類。 或者建立你自己的......或者可能不是:)

是的,內置類有什么問題?

如果你不想使用 Windows 證書存儲,你可以使用這樣的東西

RSACryptoServiceProvider rscp = new RSACryptoServiceProvider();
rscp.FromXmlString("<RSAKeyValue><Modulus>key data gere</Modulus><Exponent></Exponent></RSAKeyValue>");

不過,不確定這對於私鑰是否是一個好主意。

有關於這個問題的一個很好的教程在這里

暫無
暫無

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

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