2013-07-02 36 views
1

我正在使用.net 4,mvc4和實體框架我的第一個.net項目。該項目是iOS應用程序的API。如何加密web.config沒有訪問服務器和密鑰交換

不幸的是,其中一個要求是該項目將在一個zip文件中進行傳遞,並且預加密了連接字符串。這將使用aspnet_regiis直接轉發,但我無法訪問服務器,不允許進行密鑰交換,並且第一次運行時的加密對客戶端來說也是不可接受的。不過,我可以在應用程序中打包任何我喜歡的dll。

我已經向客戶指出,這隻會給安全錯覺,因爲我將不得不將解密代碼打包到應用程序中,而無濟於事。

所以現在我想弄清楚如何以最簡單最直接的方式預先加密web.config中的連接字符串。我在這裏和通過谷歌搜索,雖然我相信我將需要創建一個自定義的提供商和加密aspnet_regiis我真的很感謝來自社區的指導。

+0

不知道什麼ols的意思,但這裏有一個鏈接到我的當前連接部分的要點https://gist.github.com/philpeterman/5909061(該部分太長,不能粘貼在這裏) –

+0

和我需要什麼結束與應類似於此: <的ConnectionStrings configProtectionProvider = 「TripleDESProvider」><的EncryptedData> FPfvfMRROoZGLIht3ozZsw0/H50h4mX9Ulu4VWuN1CGNl/uJTBBO8FogMvtVjpvvL I9rIOLmNotLneHTFMyZFrsHmFpTCyvwpm45gFFIsQOtlYs5dltNUpHeap9zX6t4Vtgmm1pw + sG3SN6f0K f9GqTWlRUq7VXy4CzklWtwoIukWjRDSWUuK6k/4pljrTC5Ia5iOy73D2CI6V02 + M0O + V44XXZM + b1Omnc .... SKTrS8qn8Fb0ZO3smt8wP5vPGBv + 1qVfoOEl7OBOV + gnc6Kdp2RDiS9/aOi5W4/OD39/oiwRjHyA ==

+0

不用擔心,只是想確定我沒有錯過任何東西。 –

回答

0

終於困惑了這一點。這可能不是問題的最佳答案,但它工作得很好。

關鍵確實是構建了一個定製的受保護的配置提供程序。按照來自MS的步驟發現here

一旦我找到了,我使用aspnet_regiis加密了web.config的連接字符串部分。這給了我客戶需要的密碼文本。

最難的部分是搞清楚了keyFilePath正確的路徑=

有一次,我說我打包Keys.txt與應用程序文件(記得在Solution Explorer中的文件的屬性總是選擇複印件)。添加了對我的自定義提供程序的引用(再次在解決方案資源管理器的引用部分中複製)和Bob的叔叔。

希望這可以幫助別人。