public static String desensitizeBody(final boolean desensitized, final String source,
                                     final KeyWordMatch keyWordMatch, final String dataDesensitizeAlg) {
        if (StringUtils.hasLength(source) && desensitized) {
            Map<String, String> bodyMap = JsonUtils.jsonToMap(source, String.class);
            bodyMap.forEach((key, value) -> {
                if (keyWordMatch.matches(key)) {
                    bodyMap.put(key, DataDesensitizeFactory.selectDesensitize(value, dataDesensitizeAlg));
                }
            });
            return JsonUtils.toJson(bodyMap);
        } else {
            return source;
        }
    }
@Test
    public void desensitizeBodyTest() {
        String noDesensitizedData = DataDesensitizeUtils.desensitizeBody(false, JSON_TEXT, keyWordMatch, DataDesensitizeEnum.MD5_ENCRYPT.getDataDesensitizeAlg());
        Assertions.assertEquals(JSON_TEXT, noDesensitizedData);

        String desensitizedData = DataDesensitizeUtils.desensitizeBody(true, JSON_TEXT, keyWordMatch, DataDesensitizeEnum.MD5_ENCRYPT.getDataDesensitizeAlg());
        Map<String, String> jsonMap = JsonUtils.jsonToMap(JSON_TEXT, String.class);
        jsonMap.put("name", DigestUtils.md5Hex(jsonMap.get("name")));
        String jsonRet = JsonUtils.toJson(jsonMap);
        Assertions.assertEquals(jsonRet, desensitizedData);

    }