文本内容打码数据脱敏StringUtils使用

数据脱敏实现:“想在哪脱就在哪脱,想脱谁就脱谁! ! !”

当一些隐私数据不能直接展示时,可以用“*”来模糊掉完整信息,例如快递/外卖单上的用户名、联系方式、地址等。
灵活配置的后端数据脱敏,可以看页面开头的链接的文章,讲的比较详细,这里只取使用StringUtils对文本使用“*”替换部分信息,例如将“123456”替换为“12**56”

    @Test
    public void keyToText(){
        // 利用StringUtils将数据脱敏为Ajx****************uJ9
        String key = "Ajx1dHcldU68TcGks2suJ9";

        // 左侧获取三个首字母开始拼接,这一步为"Ajx"
        String res = StringUtils.left(key, 3).concat(
                // 填充完*之后需要移除多余的*,这一步为"****************uJ9"
                StringUtils.removeStart(
                        // 取出末尾三个字母,向左侧开始填充str的长度的*,然后再删除拼接后左侧多出来的三个*
                        StringUtils.leftPad(StringUtils.right(key, 3), StringUtils.length(key), "*"),
                        // 因为填充的是str的完整长度,所以需要去掉开头保留的三个字母的位置
                        "***"));
        System.out.println(key);
        System.out.println(res);
        // Ajx1dHcldU68TcGks2suJ9
        // Ajx****************uJ9


        // ---------------------效果一样,但省去先填充后删除的步骤----------------------
        // 获取开头三个字母,然后拼接
        String res2 = StringUtils.left(key, 3).concat(
                // 获取最右侧三个字母,向左填充*,数量为总的长度减去开头三个明文字母的长度
                StringUtils.leftPad(StringUtils.right(key, 3), StringUtils.length(key)-3, "*"));

        System.out.println(key);
        System.out.println(res2);
        // Ajx1dHcldU68TcGks2suJ9
        // Ajx****************uJ9
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值