package com.crm.rely.backend.util;

public class MaskUtil {

    /**
     * 将字符串中间部分替换为*号
     *
     * @param input     原始字符串
     * @param prefixLen 保留前几位
     * @param suffixLen 保留后几位
     * @return 脱敏后的字符串
     */
    public static String mask(String input, int prefixLen, int suffixLen) {
        if (input == null || input.length() == 0) {
            return input;
        }
        if (prefixLen + suffixLen >= input.length()) {
            return input; // 如果保留位数 >= 总长度，就不打码
        }

        int maskLen = input.length() - prefixLen - suffixLen;
        StringBuilder sb = new StringBuilder();
        sb.append(input.substring(0, prefixLen)); // 前缀

        // Java 8 没有 String.repeat()，改成循环拼接
        for (int i = 0; i < maskLen; i++) {
            sb.append("*");
        }

        sb.append(input.substring(input.length() - suffixLen)); // 后缀
        return sb.toString();
    }
}
