干货:Hutool的脱敏工具DesensitizedUtil,开箱即用,省去自定义规则步骤

70 阅读2分钟

摘要

本文介绍Hutool脱敏工具DesensitizedUtil,事先封装好的脱敏工具被Hutool收录,开箱即用。

认识DesensitizedUtil

脱敏工具类DesensitizedUtil,支持用户ID、中文名、身份证、座机号、手机号、地址、电子邮件、密码、车牌、银行卡号

注意:脱敏后,不能解密。StrUtil.hide 和 DesensitizedUtil 都只是不可逆的字符替换,中间那部分被 * 覆盖的原文信息已经丢失,没有任何密钥或算法可以恢复。

代码示例

导入依赖

cn.hutool hutool-all 5.8.29

使用方法

package org.coffeebeans.service;

import cn.hutool.core.util.DesensitizedUtil; import cn.hutool.core.util.StrUtil;

public class DesensitizedUtilUse { public static void main(String[] args) { String name= "张三"; String idCard= "53333618541251"; String telPhone= "5201111"; String mobilePhone= "13888888888"; String address= "四川省成都市高新区1号"; String email= "1234567890@qq.com"; String password= "E1234567"; String plate= "川A6666D"; String bankCard= "12342222333344446789"; String ipv4= "192.168.1.1"; String ipv6= "2001:0db8:86a3:08d3:1319:8a2e:0370:7344";

    //DesensitizedUtil封装好的直接用,底层是StrUtil.hide
    //省略掉System.out.println...
    DesensitizedUtil.chineseName(name) //张*
    DesensitizedUtil.idCardNum(idCard, 1,2) //5***********51
    DesensitizedUtil.fixedPhone(telPhone) //5201*11
    DesensitizedUtil.mobilePhone(mobilePhone) //138****8888
    DesensitizedUtil.address(address, 3) //四川省成都市高新***
    DesensitizedUtil.email(email) //1*********@qq.com
    DesensitizedUtil.password(password) //********
    DesensitizedUtil.carLicense(plate) //川A6***D
    DesensitizedUtil.bankCard(bankCard) //1234 **** **** **** 6789
    DesensitizedUtil.ipv4(ipv4) //192.*.*.*
    DesensitizedUtil.ipv6(ipv6) //2001:*:*:*:*:*:*:*

    //StrUtil.hide自定义脱敏,实际是CharSequenceUtil方法
    //省略掉System.out.println...
    StrUtil.hide(name, 1, 2) //张*
    StrUtil.hide(idCard, 1, idCard.length() - 2) //5***********51
    StrUtil.hide(telPhone, 0, telPhone.length() - 4) //***1111
    StrUtil.hide(mobilePhone, 3, 7) //138****8888
    StrUtil.hide(address, 3, 100) //四川省********
    StrUtil.hide(email, 1, email.indexOf('@')) //1*********@qq.com
    StrUtil.hide(password, 0, 100) //********
    StrUtil.hide(plate, 2, plate.length() - 1) //川A****D
    StrUtil.hide(bankCard, 0, bankCard.length() - 4) //****************6789
    StrUtil.hide(ipv4, 10, 100) //192.168.1.*
    StrUtil.hide(ipv6, ipv6.lastIndexOf(':') - 8, 100) //2001:0db8:86a3:08d3:1319:8*************
}

}

总结

以上我们了解了Hutool的脱敏工具DesensitizedUtil支持用户ID、中文名、身份证、座机号、手机号、地址、电子邮件、密码、车牌、银行卡号。脱敏后,不能解密。

关注公众号:咖啡Beans

在这里,我们专注于软件技术的交流与成长,分享开发心得与笔记,涵盖编程、AI、资讯、面试等多个领域。无论是前沿科技的探索,还是实用技巧的总结,我们都致力于为大家呈现有价值的内容。期待与你共同进步,开启技术之旅。