背景:項目業務源碼須要開放給甲方,但其中有部分核心代碼須要加密處理。工具
目的:實現對核心代碼DLL的加密,但不能影響其餘模塊對該DLL的引用。ui
1.安裝Dotfuscator 加密工具。加密
比較簡單,點下一步到底。3d
2.打開Dotfuscator,會彈出「select project Type」對話框,選擇「create new project」新建一個項目:blog
3.點擊Input頁卡,將要加密的核心DLL拖入到input Files框中:input
4.去掉「Library」勾選,其餘幾項要勾選,以下圖所示:源碼
5.點擊「Settings」—「Global Options」 ,修改」disable Renaming」爲Yes,修改」disable String Encryption」爲No。意思是關掉重命名,由於此DLL須要在外部引用,若是公開類和方法名被改了,外部引用會報錯。io
6.點擊「String Encryption」選項卡,將要加密的dll勾選上:編譯
7.選擇加密文件輸出路徑,加密後的DLL將放到此處:select
8.設置完成,點「Build Project」按鈕執行加密,會先彈出是否保存項目的提示,按須要保存便可,保存後方便下次直接修改加密選項。
加密效果驗證:
用.Net Reflector工具打開加密後的DLL,可看到公開方法和類名並無改變,但核心實現被隱藏。
如下是加密後的DLL,反編譯出來的結果:
如下是未加密的DLL,反編譯出來的結果: