• 脱敏工具类


    /**
     * 通用脱敏工具类
     * 可用于:
     *      用户名
     *      手机号
     *      邮箱
     *      地址等
     */
    public class DesensitizationUtil {
    
        private static final int SIZE = 6;
        private static final String SYMBOL = "*";
    
        public static void main(String[] args) {
            String name = commonDisplay("赵镇啊");
            String mobile = commonDisplay("13900000000");
            String mail = commonDisplay("admin@imooc.com");
            String address = commonDisplay("北京大运河东路888号");
    
            System.out.println(name);
            System.out.println(mobile);
            System.out.println(mail);
            System.out.println(address);
        }
    
        /**
         * 通用脱敏方法
         * @param value
         * @return
         */
        public static String commonDisplay(String value) {
            if (null == value || "".equals(value)) {
                return value;
            }
            int len = value.length();
            int pamaone = len / 2;
            int pamatwo = pamaone - 1;
            int pamathree = len % 2;
            StringBuilder stringBuilder = new StringBuilder();
            if (len <= 2) {
                if (pamathree == 1) {
                    return SYMBOL;
                }
                stringBuilder.append(SYMBOL);
                stringBuilder.append(value.charAt(len - 1));
            } else {
                if (pamatwo <= 0) {
                    stringBuilder.append(value.substring(0, 1));
                    stringBuilder.append(SYMBOL);
                    stringBuilder.append(value.substring(len - 1, len));
    
                } else if (pamatwo >= SIZE / 2 && SIZE + 1 != len) {
                    int pamafive = (len - SIZE) / 2;
                    stringBuilder.append(value.substring(0, pamafive));
                    for (int i = 0; i < SIZE; i++) {
                        stringBuilder.append(SYMBOL);
                    }
                    if ((pamathree == 0 && SIZE / 2 == 0) || (pamathree != 0 && SIZE % 2 != 0)) {
                        stringBuilder.append(value.substring(len - pamafive, len));
                    } else {
                        stringBuilder.append(value.substring(len - (pamafive + 1), len));
                    }
                } else {
                    int pamafour = len - 2;
                    stringBuilder.append(value.substring(0, 1));
                    for (int i = 0; i < pamafour; i++) {
                        stringBuilder.append(SYMBOL);
                    }
                    stringBuilder.append(value.substring(len - 1, len));
                }
            }
            return stringBuilder.toString();
        }
    
    }
    
    

    脱敏工具类,用于手机号昵称等脱敏

    欢迎搜索关注本人与朋友共同开发的微信面经小程序【大厂面试助手】和公众号【微瞰技术】

    file
    file

  • 相关阅读:
    一款全屏图片滑动js 插件 超快捷
    19个非常有用的 jQuery 图片滑动插件和教程
    sqlite 下载的 ZIP 包的区别
    get utc+8 当时时间
    http://www.dayandeng.com/ 诈骗网站
    This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms
    c# string 数组转 list
    sql在添加新列时同时指定default约束名称
    windows证书地址
    Value Dispose() cannot be called while doing CreateHandle().
  • 原文地址:https://www.cnblogs.com/zhendiao/p/14159525.html
Copyright © 2020-2023  润新知