Config檔加密 by Rsa

Config檔加密 by Rsa

最近專案把config設定都集中到同一個檔案去了~
因為要部屬的機器還滿多台的,改config設定就是一個很大的功,因此寫了一個頁面負責控管所有設定,不管從哪一台進入網頁改設定都會去改每一台的config。
接著遇到加密= =,才猛然想到會有問題。因為我原本用的是DPAPIProtectedConfigurationProvider  ˇˇ,沒辦法,只好換RSA了。
加密方式可參考逐步解說:建立和匯出 RSA 金鑰容器
不過太多臺要做了= = ,就寫了一個小工具來做比較快

主要還是利用aspnet_regiis.exe來做,只是用程式碼來動態建立bat檔,

再用程式去Run。

謎:(((這樣就可以少寫好多部署步驟拉~(逃)

image

 

image

以下是新增的部分CODE~


            const string regiisPath = @"C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe";
            StringBuilder sb = new StringBuilder();//動態建立bat檔之內容
            sb.Append("@ECHO OFF"+Environment.NewLine);//清掉畫面資訊
            sb.Append("ECHO 建立金鑰開始" + Environment.NewLine);//print訊息
            sb.Append(regiisPath + " -pc \"" + txtKeyname.Text + "\" -exp" + Environment.NewLine);//執行aspnet_regiis.exe 
            sb.Append("PAUSE" + Environment.NewLine);//等待使用者按任意鍵
            File.WriteAllText("Auto_New.bat", sb.ToString(), Encoding.Default);//寫入並建立暫存bat檔
            ProcessStartInfo info = new ProcessStartInfo("Auto_New.bat");
            Process proc= Process.Start(info);//執行bat檔
            proc.WaitForExit();//等待bat檔執行結束
            File.Delete("Auto_New.bat");//刪除bat檔

專案檔下載:

RSA_Encryption.rar