All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.opensabre.boot.sensitive.rule.SensitiveRule Maven / Gradle / Ivy

The newest version!
package io.github.opensabre.boot.sensitive.rule;


import cn.hutool.core.text.CharSequenceUtil;

import java.util.regex.Pattern;

/**
 * 脱敏规则
 *
 * @author zhoutaoo
 */
public interface SensitiveRule {

    /**
     * 类别
     * 如: 类别[电话],就包含mobile phone telephone等
     *
     * @return 保留前缀个数
     */
    String category();

    /**
     * 正则表达式
     *
     * @return 脱敏字段的正则
     */
    Pattern pattern();

    /**
     * 保留前缀个数 (需满足 大于等于 0个)
     * 

* 如: 538261, 保留前缀个数为2的话, 那么就是 53 * * @return 保留前缀个数 */ int retainPrefixCount(); /** * 保留后缀个数 (需满足 大于等于 0个) *

* 如: 123456, 保留后缀个数为2的话, 那么就是 56 * * @return 保留后缀个数 */ int retainSuffixCount(); /** * 用于替代明文的 密文字符 *

* 如: 对123456使用*进行前2后2的脱敏, 那么就是 12**56 * * @return 用于替代明文的 密文字符,默认* */ default char replaceChar() { return '*'; } /** * 原始字符串 替换 * * @param originStr 原始字符串 * @return 替换后的字符串 */ default String replace(String originStr) { return CharSequenceUtil.replace(originStr, this.retainPrefixCount(), originStr.length() - this.retainSuffixCount(), this.replaceChar()); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy