数据脱敏

最后更新:2025-06-28 05:30:07 | 状态:未完成
        //列名支持正则
        //两种方式脱敏
        //1.omit 显示指定位数 短文本适合 如把公司、联系人、地址列 显示部分内容
        //2.替换关键字 长文本适合 如从正文中替换手机号
        //两个作用范围
        //1.ConfigTable全局生效
        //2.ConfigStore针对当前查询生效
        //两个阶段可执行
        //1.ConfigTable ConfigStore在执行查询过程中执行
        //2.DataSet DataRow在查询后执行 直接调用omit和replaceAll方法

        ConfigTable.IS_AUTO_MASK_OMIT = true;
        ConfigTable.MASK_OMIT_COLUMN = "NAME;.*DE"; //需要脱敏的列 多个以;分隔 注意不是,
        ConfigTable.MASK_OMIT_VOL = 5; //先拆成不大于VOL长度的串 VOL大于1时有效
        ConfigTable.MASK_OMIT_ELLIPSIS = "-"; //默认*
        DataRow row = new DataRow();
        row.put("NAME", "张三三三三");
        row.put("CODE", "1830000");
        ServiceProxy.insert("crm_user", row);
        DataSet set = ServiceProxy.querys("crm_user");
        System.out.println(set);


        ConfigTable.IS_AUTO_MASK_OMIT = false;
        ConfigTable.IS_AUTO_MASK_REPLACE = true;
        //根据正则匹配需要脱敏的列 把183换成130如果不指定130则换成 MASK_REPLACE_REPLACEMENT
        ConfigTable.MASK_REPLACE_REGEX = "183:130";
        ConfigTable.MASK_REPLACE_REPLACEMENT = "000";
        ConfigTable.MASK_REPLACE_COLUMN = ".*DE"; //需要脱敏的列 多个以;分隔 注意不是,

        set = ServiceProxy.querys("crm_user");
        System.out.println(set);
        //只针对 当前查询 ConfigStore与ConfigTable有一样的属性
        ConfigStore configs = new DefaultConfigStore();
        configs.MASK_OMIT_COLUMN("NAME");
        set = ServiceProxy.querys("crm_user", configs);
        System.out.println(set);
首页 最近更新 搜索 提交 回复