2012-01-09 95 views
1

我最近發現可以使用aspnet_regiis加密web.config的某些部分。我們希望使用單獨的密鑰對存儲在數據庫中的數據進行進一步加密,但使用系統用於加密web.config的相同密鑰存儲該密鑰。有沒有辦法從C#/ ASP.Net內部以編程方式訪問?使用aspnet_regiis用於加密web.config以編程加密數據的相同密鑰

基本上,場景是:我們在web.config中的連接字符串將使用ASPNET_REGIIS進行加密(RSA目前提供,直到我能得到AES提供商合作)。然後,我們需要存儲在初始數據庫(包括用於初始數據庫的可寫連接)中的附加連接字符串信息(用於其他數據庫),該信息使用不同的密鑰加密,但該密鑰將存儲在初始數據庫中並使用web.config使用的初始加密。

否則,我將不得不爲web.config中使用的算法存儲一個密鑰和IV,並且我認爲使用它用於加密網絡的Windows安全「鑰匙串」會更安全.config首先。

+0

使用您不擁有的RSA私鑰很少是一種理想的做法。 – 2012-01-09 01:13:53

回答

0

首先,我不確定您是否可以獲取aspnet_setreg使用的加密密鑰。

其次,我不認爲使用特定的機器密鑰數據庫中的數據進行加密是一個非常不錯的主意。如果數據庫中的數據發生故障,並且數據庫必須從備份恢復到另一臺機器,會發生什麼情況?

我認爲你會好得多使用可逆加密算法(即Rinjadel)使用存儲在用來提取數據編譯應用的關鍵和IV。

如果其他應用程序需要連接字符串,您可以通過WCF服務使用Windows安全憑證集中訪問它們。