【Java】——脱敏工具

2023-11-11

一、 枚举类

在枚举中配置要脱敏的类型
正数或者倒数
从第n位 到 n+m位

package com.base.infrastructure.common.enums;

/**
 * The enum Desensitize type.
 * 例如 asc=true,start=2,end=4 ,那么就是从正数第2位 至 正数第4位脱敏  1***5678
 * 例如 asc=false,start=2,end=4 ,那么就是从倒数第2位 至 倒数第4位脱敏  1234***8
 */
public enum DesensitizeType {

    TEST1(false, 1, 4),
    TEST2(true, 5, 7),
    TEST3(false,4,5);
    private Boolean asc;//true 正数 ,false 倒数
    private int start;//开始脱敏的位
    private int end;//结束脱敏的位

    DesensitizeType(boolean asc, int start, int end) {
        this.asc = asc;
        this.start = start;
        this.end = end;
    }

    public Boolean getASC() {
        return this.asc;
    }

    public int getStart() {
        return this.start;
    }

    public int getEnd() {
        return this.end;
    }
}

二、脱敏工具类
对String类型的数据进行脱敏

package com.base.infrastructure.util;

import com.base.infrastructure.common.enums.DesensitizeType;

/**
 * The type Desensitize util.
 * 脱敏工具
 */
public class DesensitizeUtil {
    public static String desensitize(String value, DesensitizeType desensitizeType) {
        try {
            Boolean asc = desensitizeType.getASC();
            int start = desensitizeType.getStart();
            int end = Math.min(desensitizeType.getEnd(), value.length());
            String s = "";
            for (int i = 0; i <= end - start; i++) {
                s += "*";
            }
            if (asc) {
                return value.substring(0, start - 1) + s + value.substring(end);
            } else {
                return value.substring(0, value.length() - end) + s + value.substring(value.length() - start + 1);
            }
        } catch (StringIndexOutOfBoundsException e) {
            return value;
        }
    }

    public static void main(String[] args) {
        String desensitize = DesensitizeUtil.desensitize("1234567", DesensitizeType.TEST1);
        System.out.println(desensitize);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Java】——脱敏工具 的相关文章

随机推荐

  • Android—WebView简单使用

    华清创客学院 2016 12 12 08 49 有时候我们可能会碰到一些比较特殊的需求 比如说要求在应用程序里展示一些网页 相信每个人都知道 加载和显示网页通常都是浏览器的任务 但是需求里又明确指出 不允许打开系统浏览器 而我们当然也不可能
  • 159.并发编程(三):线程池,JUC

    目录 一 线程池 1 线程池的作用 2 手写线程池 3 ThreadPoolExecutor 1 线程池状态
  • 常用测试用例

    为方便平时写测试用例 整理如下 功能 条件 测试步骤 测试数据 预期结果 备注 搜索或查询 单独遍历各查询条件 测试按各查询条件是否都能够查询出相应的值 查询出符合条件的记录 设置界面上所有查询条件进行查询 单击查询按钮后 测试执行查询操作
  • 软件测试入门基础

    软件工程的四条基本原则 采取适宜的开发模型 采用合适的设计方法 提供高质量的工程支持 重视开发过程的管理 什么是软件测试 软件测试就是在软件投入运行前 对软件需求分析 设计规格说明和编码实现的最终审查 为什么要进行软件测试 软件测试就是为了
  • 深圳地区高校福利来啦!7月5日华为云开发者沙龙门票限时免费领取!

    7月5日华为云开发者沙龙深圳站开启报名 华为云专家现场手把手教你如何快速实现AI应用开发并赠送价值298元CSDN会员卡 了解行业趋势进行技术储备 高校教师 学生免费参会 报名地址 https huiyi csdn net activity
  • 谷歌浏览器关闭安全模式, 访问 http网站

    设置 隐私设置和安全性 安全 选择 不保护
  • Redis 7 第三讲 数据类型 进阶篇

    位图 bitmap 1 理论 由0和1 状态表现的二进制位的bit 数组 说明 用String 类型作为底层数据结构实现的一种统计二值状态的数据类型 位图本质是数组 它是基于String 数据类型的按位操作 该数组由多个二进制位组成 每个二
  • 基于Mahout实现协同过滤推荐算法的电影推荐系统

    1 Mahout介绍 Apache Mahout 是 Apache Software Foundation ASF 旗下的一个开源项目 提供一些可扩展的机器学习领域经典算法的实现 旨在帮助开发人员更加方便快捷地创建智能应用程序 经典算法包括
  • 实践是检验程序员的唯一标准01:用户不想跟你说话并向你扔出一张图片 - 图片上传组件开发【思路篇】...

    温馨提示 这里除了一些幼稚的小组件啥也没有温馨提示 续 这是一个新的系列 写一些实际开发中遇到的一些常用的功能 想法笨拙 代码乱套 写在前面 图片上传 作为web端一个常用的功能 在不同的项目中有不同的需求 在这里实现一个比价基本的上传图片
  • 【python基于mysql数据库实现无页面学生信息管理系统】

    python基于mysql数据库实现无页面学生信息管理系统以及简单操作mysql 前言 一 分步讲解 0 创建两张数据表 1 大概思路 2 首先连接数据库 3 查看所有学生成绩信息 4 查看所有学生个人信息 5 查看指定学生成绩信息 6 添
  • ORM中对于外键关联的处理

    根据侧重点的不同可以分为两类 一是侧重子表 即CRUD操作主要是针对子表进行的 例如书中所举的例子album 是子表 artist是主表 class AlbumMapper 1 Mapper实现的对象初始化 public Album fin
  • EXTJS2.2组件Combobox下拉框获取数据

    1 获取数据 var dataPath 远程连接 var genderStore new Ext data JsonStore proxy new Ext data HttpProxy method POST url tHarvestTab
  • 前端随笔(五)————浅谈React工程化

    1 什么是React 用于构建用户界面的 JavaScript 库 React官方文档 严格意义上来说 React并非框架 而是一个JS库 常用库 react 库 react dom 库 React具有如下特点 声明式 组件化 跨平台开发
  • 华为鸿蒙到底是不是安卓系统套了个壳?

    余承东在2月份宣布 鸿蒙将于4月份全面上线 果然没有食言 华为鸿蒙2 0来了 首批升级机型名单包括 Mate X2 Mate40以及P40系列 需要注意的是这次上线的鸿蒙OS依旧只是开发者测试版 还不是正式版本 另外花粉们必须前往官网申请加
  • C语言之冒泡排序、快速排序法、希尔排序法

    众所周知编程排序方法众多而且程序的好坏就取决于算法的使用 下面是博主现在会的几种排序方法希望对大家有所帮助 希尔排序法 Author Stylle Date 2020 11 14 15 52 03 LastEditors Stylle La
  • Java - 根据文件绝对路径,来删除文件

    目录 一 根据文件绝对路径 来删除文件 参考链接 一 根据文件绝对路径 来删除文件 import org springframework web multipart MultipartFile import java io IOExcept
  • Base64编码与解码 ——Python实现

    文章目录 1 引言 2 Base64简介 3 预习知识 3 1 字节 3 2 二进制 与字节 3 3 ASCII码 3 Base64编码 3 1 个人理解 3 2 代码实现 4 Base64解码 4 1 个人理解 4 2 代码实现 1 引言
  • RocketMQ订阅关系一致性分析

    RocketMQ的消费者 在订阅topic的时候需要遵循 订阅关系一致性 原则 即 一个消费者分组 group 下的所有消费者实例的处理逻辑必须一致 一旦订阅关系不一致就会导致消费混乱 甚至消息丢失 对大多数分布式应用来说 一个group下
  • malloc()与calloc区别

    http blog csdn net firecityplans article details 4490124 Both the malloc and the calloc functions are used to allocate d
  • 【Java】——脱敏工具

    一 枚举类 在枚举中配置要脱敏的类型 正数或者倒数 从第n位 到 n m位 package com base infrastructure common enums The enum Desensitize type 例如 asc true