【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" 一个键值对中没有回车字符。

参考文章:
正则分组替换

相关推荐
阿维的博客日记18 小时前
MultipartFile 是不是表示仅仅是一个分片?
java·后端·spring·multipartfile
程序员无隅18 小时前
Coding Agent 为什么压缩上下文后还能继续工作?上下文模块设计拆解
java·开发语言·数据库
Python+9918 小时前
Java 枚举类(Enum)详解:从基础到高级应用
java·开发语言·python
二炮手亮子18 小时前
浅记java线程池
java·开发语言
一路向北North18 小时前
Spring Security OAuth2.0(23):分布式系统授权-转发明文给微服务
java·spring·微服务
爱吃牛肉的大老虎20 小时前
rust基础之环境搭建
java·开发语言·rust
tellmewhoisi21 小时前
多版本共用redis的token有效期校验(过期重新登录)
java·redis·缓存
疯狂打码的少年21 小时前
【软件工程】结构化设计:模块独立性与耦合内聚
java·开发语言·笔记·软件工程
乐观的Terry21 小时前
3、数据库设计与领域实体
java·数据库·spring boot·spring cloud·ai编程
C++、Java和Python的菜鸟1 天前
第4章 后端Web基础(基础知识)
java·开发语言