Java实现对手机号、身份证号、护照号脱敏

这篇具有很好参考价值的文章主要介绍了Java实现对手机号、身份证号、护照号脱敏。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景:

  • 我们在项目中经常会需要用到用户的敏感信息,比如手机号、身份证号、护照号;
  • 当数据需要在页面上进行展示的时候就需要进行脱敏,将其中几位变为 *。

1.Java原生代码实现:

/**
 * 手机号码前三后四脱敏
 */
public static String mobileEncrypt(String mobile) {
    if (StringUtil.isEmpty(mobile) || (mobile.length() != 11)) {
        return mobile;
    }
    return mobile.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
}

/*
 * 身份证前三后四脱敏
 */
public static String idEncrypt(String id) {
    if (StringUtil.isEmpty(id) || (id.length() < 8)) {
        return id;
    }
    return id.replaceAll("(?<=\\w{3})\\w(?=\\w{4})", "*");
}

/*
 * 护照前2后3位脱敏,护照一般为8或9位
 */
public static String idPassport(String id) {
    if (StringUtil.isEmpty(id) || (id.length() < 8)) {
        return id;
    }
    return id.substring(0, 2) + new String(new char[id.length() - 5]).replace("\0", "*") + id.substring(id.length() - 3);
}

2.使用 Hutool 工具实现:

官方文档: https://www.hutool.cn/docs/#/core/工具类/信息脱敏工具-DesensitizedUtil

Hutool依赖:

<!--hutool-->
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.7.20</version>
</dependency>

代码实现:

public static void main(String[] args) {
    String encryptPhone = DesensitizedUtil.mobilePhone("18049531999");
    System.out.println("手机号脱敏:" + encryptPhone);
    String encryptIdCard = DesensitizedUtil.idCardNum("51343620000320711X", 1, 2);
    System.out.println("身份证号脱敏:" + encryptIdCard);
    String encryptPwd = DesensitizedUtil.password("1234567890");
    System.out.println("密码脱敏:" + encryptPwd);
}

执行结果:

手机号脱敏:180****1999
身份证号脱敏:5***************1X
密码脱敏:**********

整理完毕,完结撒花~文章来源地址https://www.toymoban.com/news/detail-551382.html

到了这里,关于Java实现对手机号、身份证号、护照号脱敏的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包