2013-07-30 52 views

回答

4

在网络上发送密码之前,在内存中创建密码的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/

如果你绝对需要明文密码,你有几种选择:

  1. 您可以为标题禁用日志或将其设置为高于Debug级别:Disable HttpClient logging

  2. 您可以在发送密码之前动态地禁用日志记录权限,然后将其恢复o再次:Dynamically configuring Apache Http client

  3. 您可以实现您自己的记录器处理程序/格式化程序或子类的基本之一,并搜索输出的密码,并将其替换为XXXXXXXXX。然后处理程序设置为你的类:https://hc.apache.org/httpcomponents-client-ga/logging.html

+1

如果请求的页面需要明文密码,该怎么办? –

1

在log4j.properties设置

log4j.logger.httpclient.wire.level=WARN