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