2012-05-22 60 views
0

我有一個要求,以編程方式加密C#應用程序中的純文本文件的部分,並確保未加密時的數據不能輕易攔截在內存中(這可能會提供具有挑戰性,因爲原始數據總是以解密的形式處理)。在.NET中加密文本文件

應該可以通過在文件中加密的密碼或理想地通過私鑰解密數據。一個要求是允許每個加密塊受唯一密鑰對保護,使得私鑰解密加密整體的子集。

我正在考慮使用.Net 4.0中提供的RSACryptoServiceProvider或其他一些非對稱加密方案。我謹慎行事,因爲該計劃必須堅如磐石,如果有令人信服的理由,不會反對使用外部圖書館。

爲了防止運行時堆作爲攔截未加密數據的手段,我也對維護內存中加密的已建立技術感興趣。

在此先感謝。

+0

查看['SecureString'](http://msdn.microsoft.com/en-us/library/system.security.securestring.aspx)class;) –

回答

2

有關RSACryptoServiceProvider如何工作的示例,我只能將您引導至其MSDN page that has a very complete usage example

對於內存string的安全存儲,您可以使用System.Security.SecureString

SecureString的類: 表示應當予以保密文本。該文本在使用時被加密以保護隱私,並在不再需要時從計算機內存中刪除。

但是請記住,任何人足夠的技能和/或動機將總是管理,最終打破你已經設置的保護。

+0

謝謝,SecureString對我們來說可能就足夠了。 – pdm2011