当前位置: 首页 > news >正文

java实现信息脱敏

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

package com.gomemyc.zeus.utils;

import org.apache.commons.lang3.StringUtils;

/**
 * @Description: 脱敏工具类
 *      java数据脱敏,简单形式分为3类:
 *          一、保留前n位
 *          二、保留后m位
 *          三、保留前n位+保留后m位。
 * @Author: 张颖辉(yh)
 * @CreateDate: 2018/9/20 16:51
 * @UpdateUser: 张颖辉(yh)
 * @UpdateDate: 2018/9/20 16:51
 * @UpdateRemark: The modified content
 * @Version: 1.0
 */
public class DesensitizeUtil {
    /**
     * @Description:   保留前面几位 比如 姓名 张**
     * @Author:        张颖辉(yh)
     * @Date:          2018/9/20 16:53
     * @param:         [fullName, index]
     * @return:        java.lang.String
     * @Version:       1.0
     */
    public static String left(String str,int index) {
        if (StringUtils.isBlank(str)) {
            return "";
        }
        String name = StringUtils.left(str, index);
        return StringUtils.rightPad(name, StringUtils.length(str), "*");
    }

    /**
     * @Description:    前面保留 index 位明文,后面保留 end 位明文,如:[身份证号] 110****58,前面保留3位明文,后面保留2位明文
     * @Author:        张颖辉(yh)
     * @Date:          2018/9/20 16:47
     * @param:         [name, index, end]
     * @return:        java.lang.String
     * @Version:       1.0
     */
    public static String around(String str, int index, int end) {
        if (StringUtils.isBlank(str)) {
            return "";
        }
        return StringUtils.left(str, index).concat(StringUtils.removeStart(StringUtils.leftPad(StringUtils.right(str, end), StringUtils.length(str), "*"), "***"));
    }


    /**
     * @Description:   保留后面几位 如手机号 *******5678
     * @Author:        张颖辉(yh)
     * @Date:          2018/9/20 16:53
     * @param:         [num, end]
     * @return:        java.lang.String
     * @Version:       1.0
     */
    public static String right(String str,int end) {
        if (StringUtils.isBlank(str)) {
            return "";
        }
        return StringUtils.leftPad(StringUtils.right(str, end), StringUtils.length(str), "*");
    }
}

 

转载于:https://my.oschina.net/iyinghui/blog/2091057

相关文章:

  • Mozilla 官方博客:Firebug的寿命即将结束
  • 在Visual Studio中使用GitHub(使用篇)
  • 蜂巢科技融资6200万元,打响工业无人机平台争夺战
  • Python全栈 Web(Flask框架、变量、模板)
  • 日本RHP2机器人不仅摔倒后能自行站起来 ,还能协助人类救灾
  • SimplifyDb java快捷操作数据库发布啦
  • PHP7中我们应该学习会用的新特性
  • 用户认证--------------auth模块
  • 贪吃蛇小游戏-----C语言实现
  • php+xml有什么用
  • SpringBoot(六)-- 静态资源处理
  • django开发-定时任务的使用
  • VB6实现真正的继承【转】
  • WPF 窗口
  • 三菱数控CNC系统G代码M代码大全
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • golang中接口赋值与方法集
  • HTTP中的ETag在移动客户端的应用
  • Java基本数据类型之Number
  • JS实现简单的MVC模式开发小游戏
  • PaddlePaddle-GitHub的正确打开姿势
  • Spring核心 Bean的高级装配
  • webgl (原生)基础入门指南【一】
  • 分类模型——Logistics Regression
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 聊聊hikari连接池的leakDetectionThreshold
  • 探索 JS 中的模块化
  • 小程序测试方案初探
  • 一道面试题引发的“血案”
  • hi-nginx-1.3.4编译安装
  • scrapy中间件源码分析及常用中间件大全
  • Semaphore
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • ![CDATA[ ]] 是什么东东
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (JS基础)String 类型
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (四)图像的%2线性拉伸
  • (转载)Google Chrome调试JS
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • ./configure,make,make install的作用
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .Net Core与存储过程(一)
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .net中生成excel后调整宽度