springboot-Logback:掩码SSN后四位
Springboot-Logback: Mask SSN last four Digits
我正在尝试使用 Logback.xml 在我的 Spring 引导应用程序中隐藏 SSN 和信用卡等敏感信息。我在网上搜索了各种链接,但找不到好的 solution.Is 有没有简单的方法或任何库来屏蔽日志中的敏感信息?
输入
{"firstName":"John","lastName":"Doe","SSN":123456789}
输出:
{"firstName":"John","lastName":"Doe","SSN":12345****}
并在堆栈溢出时发现了这一点,但无法弄清楚 regex.Any 将不胜感激
Mask sensitive data in logs with logback
您可以尝试使用 String.ReplaceAll(String regex, String replacement)
。正则表达式只想匹配 SSN 的前 5 位数字,保留它们,并替换其他所有数字。因为我们知道每个 SSN 只有 9 位数字,所以只需要像这样捕获前 5 位:
String rgx = "([0-9]{5})[0-9]*";
我们捕获一组中的前 5 个,然后我们可以在 ReplaceAll()
中用 </code> 引用该组。我们不关心它后面有多少位,所以只用 <code>[0-9]*
来匹配其余的。在我们用 </code> 引用前 5 位数字后,只需将其他所有内容替换为 <code>****
.
结果:
String baseSSN = "123456789";
String rgx = "([0-9]{5})[0-9]*";
String modifiedSSN = baseSSN.ReplaceAll(rgx, "****"); //modifiedSSN = 12345****
你可以乱用正则表达式 here。
我正在尝试使用 Logback.xml 在我的 Spring 引导应用程序中隐藏 SSN 和信用卡等敏感信息。我在网上搜索了各种链接,但找不到好的 solution.Is 有没有简单的方法或任何库来屏蔽日志中的敏感信息?
输入
{"firstName":"John","lastName":"Doe","SSN":123456789}
输出:
{"firstName":"John","lastName":"Doe","SSN":12345****}
并在堆栈溢出时发现了这一点,但无法弄清楚 regex.Any 将不胜感激
Mask sensitive data in logs with logback
您可以尝试使用 String.ReplaceAll(String regex, String replacement)
。正则表达式只想匹配 SSN 的前 5 位数字,保留它们,并替换其他所有数字。因为我们知道每个 SSN 只有 9 位数字,所以只需要像这样捕获前 5 位:
String rgx = "([0-9]{5})[0-9]*";
我们捕获一组中的前 5 个,然后我们可以在 ReplaceAll()
中用 </code> 引用该组。我们不关心它后面有多少位,所以只用 <code>[0-9]*
来匹配其余的。在我们用 </code> 引用前 5 位数字后,只需将其他所有内容替换为 <code>****
.
结果:
String baseSSN = "123456789";
String rgx = "([0-9]{5})[0-9]*";
String modifiedSSN = baseSSN.ReplaceAll(rgx, "****"); //modifiedSSN = 12345****
你可以乱用正则表达式 here。