/** * 数据脱敏工具 * 用于保护敏感数据,支持多种脱敏策略 * * 支持的脱敏类型: * - phone: 手机号(138****1234) * - email: 邮箱(z***@example.com) * - idcard: 身份证(110***********1234) * - bankcard: 银行卡(************1234) * - password: 密码(******) * - partial: 部分隐藏(张*明) * - full: 完全隐藏(******) */ /** * 脱敏类型 */ export type MaskType = 'phone' | 'email' | 'idcard' | 'bankcard' | 'password' | 'partial' | 'full'; /** * 脱敏规则 */ export interface MaskingRule { /** 匹配模式(列名正则) */ pattern: RegExp; /** 脱敏类型 */ type: MaskType; } /** * 数据脱敏器类 */ export declare class DataMasker { private rules; private enabled; constructor(enabled?: boolean, customRules?: MaskingRule[]); /** * 脱敏单个值 * @param columnName - 列名 * @param value - 原始值 * @returns 脱敏后的值 */ maskValue(columnName: string, value: unknown): unknown; /** * 脱敏一行数据 * @param row - 原始行数据 * @returns 脱敏后的行数据和被脱敏的列名 */ maskRow(row: Record): { maskedRow: Record; maskedColumns: string[]; }; /** * 脱敏多行数据 * @param rows - 原始行数据数组 * @returns 脱敏后的行数据数组和被脱敏的列名 */ maskRows(rows: Record[]): { maskedRows: Record[]; maskedColumns: string[]; }; /** * 查找匹配的脱敏规则 * @param columnName - 列名 * @returns 匹配的规则或 undefined */ private findMatchingRule; /** * 自动检测并脱敏(基于值的格式) * @param value - 原始值 * @returns 脱敏后的值 */ private autoDetectAndMask; /** * 应用脱敏 * @param value - 原始值 * @param type - 脱敏类型 * @returns 脱敏后的值 */ private applyMask; /** * 检查是否启用脱敏 */ isEnabled(): boolean; /** * 设置是否启用脱敏 */ setEnabled(enabled: boolean): void; /** * 添加自定义脱敏规则 * @param rule - 脱敏规则 */ addRule(rule: MaskingRule): void; } /** * 创建默认的数据脱敏器 * @param enabled - 是否启用脱敏,默认 true * @returns DataMasker 实例 */ export declare function createDataMasker(enabled?: boolean): DataMasker; //# sourceMappingURL=data-masking.d.ts.map