2010-02-10 152 views
2

有沒有辦法混淆XML屬性的一部分?XML密碼混淆

我想用戶加密=和密碼=以下XML的部分屬性,所以沒有人在看文件可以看到密碼。有什麼方法可以使用Java DOM來做到這一點?

<connectionString="Data Source=Winserver\sqlexpress;Initial Catalog=haven;Integrated Security=false;user=admin;password="/> 

如果您可以用Java代碼回答,那就太好了。

謝謝!

+3

這不是XML的,所以我刪除了標籤。 – 2010-02-10 16:15:35

+0

爲什麼不是xml?我想混淆一個xml元素 – chama 2010-02-10 16:17:31

+0

看看這個問題。它與你的相似,並可能指向你正確的方向。「我如何保護MySQL用戶名和密碼免於反編譯?」 http://stackoverflow.com/questions/442862 - – 2010-02-10 16:18:51

回答

1

雖然我不是java的傢伙。但我可以用一些程序來幫助你。

  1. 尋找一些加密算法和編碼器的base64
  2. 加密與你的程序只知道和Base64編碼,它的靜態種子您的密碼。
  3. 將旁邊的base64編碼字符串password=

用於解碼

  1. 解析編碼的密碼的一部分的BASE64。
  2. 使用base64解碼密碼。
  3. 然後用你的種子解密密碼。
  4. 用您的解碼/解密密碼替換base64編碼的字符串。

您可以嘗試加密算法,如AES,TwoFish。

0

我相信將ASP.NET應用程序的連接字符串保持爲私有的常用方法是將連接字符串放入Web服務器的註冊表中,然後在ASP網站中加載該值。

但即使你反對註冊表或者想要一個跨平臺的方法,我認爲你最好的選擇是把字符串放在外界不能讀取的地方。這可能在根網站目錄之外(如果這是一個網站),或者提示用戶(根本不要存儲它),或者將其隱藏在其他地方。在一個Linux機器上,你甚至可以chmod 700來限制對運行Java程序的用戶的訪問。

0

你可以看看Silencio庫,您可以用它來從XML文件刪除或哈希節點。您可以決定哪些節點應該轉變(你可能只想混淆一些如密碼),應適用什麼樣的變化(清除內容,哈希或自定義)