Apache httpclient似乎在調試日誌記錄打開時以明文形式記錄密碼。啓用調試日誌記錄時,apache httpclient以明文形式記錄密碼
有沒有辦法可以禁用它?這樣我可以看到其餘的調試日誌記錄,但不是憑據?
Apache httpclient似乎在調試日誌記錄打開時以明文形式記錄密碼。啓用調試日誌記錄時,apache httpclient以明文形式記錄密碼
有沒有辦法可以禁用它?這樣我可以看到其餘的調試日誌記錄,但不是憑據?
在網絡上發送密碼之前,在內存中創建密碼的SHA1哈希值。
MessageDigest md = MessageDigest.getInstance("SHA-1");
byte[] sha1hash = new byte[40];
md.update(text.getBytes("UTF-8"), 0, text.length()); // TODO verify the lengths are the same
sha1hash = md.digest();
http://www.mkyong.com/java/java-sha-hashing-example/
如果你絕對需要明文密碼,你有幾種選擇:
您可以爲標題禁用日誌或將其設置爲高於Debug級別:Disable HttpClient logging
您可以在發送密碼之前動態地禁用日誌記錄權限,然後將其恢復o再次:Dynamically configuring Apache Http client
您可以實現您自己的記錄器處理程序/格式化程序或子類的基本之一,並搜索輸出的密碼,並將其替換爲XXXXXXXXX
。然後處理程序設置爲你的類:https://hc.apache.org/httpcomponents-client-ga/logging.html
如果請求的頁面需要明文密碼,該怎麼辦? –
在log4j.properties設置
log4j.logger.httpclient.wire.level=WARN
HttpClient的原木通過一切在網絡上,並通過它。它不知道什麼是密碼,什麼不是密碼。 –