java - 如何屏蔽日志中的密码?

标签 java regex string servlets

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

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

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

最佳答案

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

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

打印:

password=***&qwe=qwe 

关于java - 如何屏蔽日志中的密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7348352/

相关文章:

linux - 将字符串放入不带转义字符的 curl 命令

javascript 删除空格回车符

javascript - 查找所有包含大括号的单词

java - 正则表达式选择数学公式中的最新表达式以更改符号

c - 为什么我可以通过传递一个变量而不是传递一个真正的字符串来反转字符串? (简单代码)

java - 从一长串空格中删除单个空格字符

java - 正则表达式匹配a-字母数字&b-数字&c-数字

java - 如何隐藏SWT浏览器或以 headless 模式运行?

java - 从 json 响应中删除 unicode 字符串和空格

java - 将arraylist发送到fragment以动态填充数据