2011-09-08 73 views
4

什麼是最好的方法來隱藏有信心的數據,例如密碼到日誌中。如何屏蔽日誌中的密碼?

我想記錄正在發送到我的Servlet的POST請求的正文。但是記錄密碼不是一個好主意。如何掩蓋密碼?如果正則表達式是最好的想法,你能提出一些例子嗎?

// Example: 
password=123456asedqwe -> password=*** 
bla&password=qweqweqwe -> bla&password=*** 
password=qweqweqwe&qwe=qwe -> password=***&qwe=qwe 
+6

就像你說的,登錄密碼,是根本不是一個好主意。你爲什麼不從記錄中刪除該字段? – asgs

+0

我需要密碼出現在請求中的信息 – smas

回答

10

您可以嘗試以下簡單的正則表達式替換。它假定密碼位於password=和下一個&之間。

String s = "password=qweqweqwe&qwe=qwe "; 
    String maskedPassword = s.replaceAll("password=[^&]*", "password=***"); 
    System.out.println(maskedPassword); 

打印:

password=***&qwe=qwe 
+0

感謝,簡單和漂亮的代碼 – smas

+1

小心:如果密碼包含'&',您可能會暴露後半部分密碼。 – Alex