Config檔加密 by Rsa
最近專案把config設定都集中到同一個檔案去了~
因為要部屬的機器還滿多台的,改config設定就是一個很大的功,因此寫了一個頁面負責控管所有設定,不管從哪一台進入網頁改設定都會去改每一台的config。
接著遇到加密= =,才猛然想到會有問題。因為我原本用的是DPAPIProtectedConfigurationProvider ˇˇ,沒辦法,只好換RSA了。
加密方式可參考逐步解說:建立和匯出 RSA 金鑰容器。
不過太多臺要做了= = ,就寫了一個小工具來做比較快
主要還是利用aspnet_regiis.exe來做,只是用程式碼來動態建立bat檔,
再用程式去Run。
謎:(((這樣就可以少寫好多部署步驟拉~(逃)
以下是新增的部分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檔