【java】替换json字符串的敏感值,如密码

上代码:

java 复制代码
    /**
     * @Description:
     * @param input 替换前原始字段
     * @param fields 需要替换字段的名称,可以写多个,替换后的值是 ******
     * @return java.lang.String
     */
    public static String hiddenSecretField(String input, List<String> fields) {
        final String SECRET_SAFE_WORD = "$1******$2";
        String tmp = input;
        for (String field : fields) {
            String regStr = String.format("(\"%s\"\\s*:\\s*\")[^\"]+(\")", field);
            tmp = input.replaceAll(regStr, SECRET_SAFE_WORD);
        }
        return tmp;
    }

问题点:

需要标准格式的json字符串。至少要满足 "field":"value" 一个键值对中没有回车字符。

参考文章:
正则分组替换

相关推荐
叉烧钵钵鸡24 分钟前
Java ++i 与 i++ 底层原理
java·开发语言·后端
hqxstudying41 分钟前
SpringAI的使用
java·开发语言·人工智能·springai
狐小粟同学42 分钟前
JAVAEE--4.多线程案例
java·开发语言
the beard1 小时前
RabbitMQ:基于SpringAMQP声明队列与交换机并配置消息转换器(三)
java·开发语言·rabbitmq·intellij idea
大虾别跑1 小时前
tomcat隐藏400报错信息
java·安全·tomcat
曹朋羽1 小时前
spring mvc 整体处理流程原理
java·spring·mvc·spring mvc
蜗牛03141 小时前
2、RabbitMQ的5种模式基本使用(Maven项目)
java·springboot·java-rabbitmq
ZLlllllll01 小时前
常见的框架漏洞(Thinkphp,spring,Shiro)
java·后端·spring·常见的框架漏洞
掉头发的王富贵2 小时前
Java玩转Redis+Lua脚本:一篇让你从小白到高手的实战入门指南
java·redis·lua
Warren982 小时前
Java泛型
java·开发语言·windows·笔记·python·spring·maven