2016-12-15 46 views
1

我有ASP.Net核心1.0.1項目,我需要隱藏一些字符串。這些字符串是私有靜態字段。 Obfuscar 2.2.3默認是隱藏字符串,但它沒有。我也嘗試過使用這個配置的明確的值:在.net核心項目中隱藏字符串

<Var name="HideStrings" value="true" /> 
<ForceStringHiding type="MyNamespase" /> 

但字符串仍然可以通過dotPeek看到。

也許我誤解了一些東西?我怎樣才能隱藏我的字符串?

+0

字符串隱藏已在​​2.2.3版本中完全禁用,https://github.com/lextm/obfuscar/commit/f364a38d511e9b77fd875dee5acb54e57cbe1c45正如以下答案所示,該過程是可逆的,因此不要用它來隱藏任何祕密信息。您應該依靠其他Windows/OS機制來存儲機密數據。 –

回答

3

當你的應用程序需要能夠將其「解密」爲原始內容時,你不能「可靠地隱藏」任何「內部應用程序/庫」。

任何「祕密算法」你發明是無用的,因爲所有的需要「解密」,它內部包含的應用程序(否則你的應用程序本身將不能夠「解密」),所以任何壞人誰有權訪問您的應用程序的exe/DLL可以「重複」這一步驟和「解密」隱藏的價值。

如果你「信任」你的應用正在運行的服務器/機器,並且只想從可以從某些中間源「複製」你的應用的人「隱藏」一些字符串(例如,從github repo下載你的zip distrib)那麼你應該使用UserSecrets庫或類似的。

如果您不在服務器的「信任」位置運行應用程序,則應該更改服務器/提供程序。