在我所有的VB6應用程序中,連接信息都存儲在數據庫的加密字段中。沒有人可以訪問數據庫,如果有人這樣做,他們只能看到一堆加密值。你在哪裏存儲連接字符串?
這種方法總是有缺陷。在應用程序中使用硬編碼的id /密碼獲取所需的連接信息,該應用程序將獲取此連接信息並形成一個字符串。
在.NET世界中,我目前在app.exe.config文件中存儲這個硬編碼的ID /密碼。 推薦的方法是加密文件中的連接字符串?
我可以使用哪些類來執行此加密/解密?
在我所有的VB6應用程序中,連接信息都存儲在數據庫的加密字段中。沒有人可以訪問數據庫,如果有人這樣做,他們只能看到一堆加密值。你在哪裏存儲連接字符串?
這種方法總是有缺陷。在應用程序中使用硬編碼的id /密碼獲取所需的連接信息,該應用程序將獲取此連接信息並形成一個字符串。
在.NET世界中,我目前在app.exe.config文件中存儲這個硬編碼的ID /密碼。 推薦的方法是加密文件中的連接字符串?
我可以使用哪些類來執行此加密/解密?
閱讀:
Encrypting Configuration Information in ASP.NET 2.0 Applications
基本上,ASP.NET架構有你需要的加密工具,以及.NET配置子系統知道如何在需要時解密 - 所以有真的都已經在那裏,準備好你的使用!
要加密,你應該使用aspnet_regiis
實用,這樣的事情:
aspnet_regiis.exe -pef "connectionStrings" "C:\Inetpub\wwwroot\MySite"
而對於解密 - 什麼都不需要做,.NET透明地爲您處理此。
更新:這些機制爲NET的所有 - 它們是.NET的基本基礎結構的一部分。您可以將這些技巧和配方用於您的控制檯應用程序或Windows服務。微軟僅爲ASP.NET案例提供了工具來加密web.config的各個部分 - 但API和調用可供任何類型的.NET應用程序使用 - 從控制檯應用程序中自行完成一項Windows服務。
我有一個small utility on my SkyDrive附帶完整的.NET源代碼,告訴你如何加密任何.NET配置文件的任何部分。隨時檢查,並以您認爲合適的方式在您的努力中使用它。
爲什麼大家都投票呢? OP甚至沒有在ASP.NET上工作! – 2010-07-30 18:29:58
我想如果有人回答,他的代表超過50K,他肯定是一個永遠正確的天才......?這不是對marc_s的刺傷;我一直在這裏看到這種情況,這對社區的價值是不利的。它需要停下來。 – 2010-07-30 18:31:13
Marc_S, 我正在研究基於客戶端的應用程序。與ASP .NET無關。從該實用程序的外觀來看,它看起來像是可以與IIS一起使用的東西。 – abhi 2010-07-30 18:34:19