如何屏蔽日志中的密码?

luk*_*ymo 4 java regex string servlets

隐藏数据的最佳方法是什么,例如将密码隐藏到日志中.

我想记录发送到我的Servlet的POST请求的主体.但是记录密码并不是一个好主意.如何屏蔽密码?如果正则表达式是最好的想法,你能提出一些例子吗?

// Example:
password=123456asedqwe -> password=***
bla&password=qweqweqwe -> bla&password=***
password=qweqweqwe&qwe=qwe -> password=***&qwe=qwe
Run Code Online (Sandbox Code Playgroud)

dog*_*ane 11

您可以尝试以下简单的正则表达式替换.它假定密码位于password=下一个和下一个之间&.

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

打印:

password=***&qwe=qwe 
Run Code Online (Sandbox Code Playgroud)

  • 警告:如果密码包含"&",则可能会泄露密码的后半部分. (3认同)