数据 P0 已上线 L0

财务数据脱敏采样

从大表抽 20-50 行并对姓名/身份证/银行卡/手机号/金额保形脱敏,用于试跑与外发,原表零改动

技能 slugfin-data-mask
所属栏目数据 清洗 / 合并 / 脱敏 / 异常
交付阶段P0 P0 计划 · 验证财税品类能否吃住「数据不出电脑」,且只做地基类(清洗/合并/脱敏/异常)与最高频刚需
版权© 2026 律令科技(深圳)有限公司开发 · 财友云(caiyouyun.cn)发布
这个包已上线。复制到本地即可离线运行;正文与用法以下方随包 SKILL.md 为准。

技能正文(随包 SKILL.md)

> **本地运行,零网络、免 API Key、数据不出电脑。**
> 四项诚实承诺:① 算不出就说算不出,绝不编造数字;② 高危动作强制人工确认;③ 幂等断点,绝不重复副作用;④ 全程留痕可审计。

# 财务数据脱敏采样

流程跑通之前,谁都不该拿全量真实数据去试。本包解决两件事:**抽一小撮样本**(20–50 行)和**把它脱敏到可以放心流转**。

保形的含义:姓名还是两个字、金额还是五位数、银行卡还是 19 位——数据的形状保留,真实值破坏。这样试跑能跑出真实问题,外发也不泄露。

## 输出四件套(每次运行必有)

| 文件 | 内容 |
|---|---|
| `mask_主表.csv` | 脱敏后的样本,附原始行号(可回溯到原表核对) |
| `mask_异常表.csv` | 不适用场景的说明 |
| `mask_校验表.csv` | 抽样参数、脱敏列清单、反推风险提示、人工复核声明 |
| `fin-log.jsonl` | 处理日志(追加) |

## 环境准备

```bash
PY="<python 3.8+ 路径>"   # 纯标准库
"$PY" <skill目录>/scripts/data_mask.py <文件> [参数]
```

## 用法

### 自动识别 + 预览

```bash
data_mask.py 工资表.xlsx -n 30
```

真实输出:

```
方案:工资表.xlsx | 总行=5 | 抽样=4 | 识别敏感列=6
  脱敏列:姓名(name)、应发工资(amount)、社保基数(amount)、银行卡(card)、手机号(phone)、身份证号(id)
  金额处理:×0.618
--- 脱敏样本预览(前 8 行)---
  员工编号 | 姓名 | 部门 | 应发工资 | 社保基数 | 银行卡 | 手机号 | 身份证号
  E003 | 王* | 财务部 | 13057.71 | 7106.36 | ***************0125 | 137****7000 | 4403************36
  E005 | 孙* | 技术部 | 14164.76 | 7577.36 | ***************0127 | 135****5000 | 4403************38
```

### 分层抽样 + 抗反推

```bash
data_mask.py 工资表.xlsx -n 30 --stratify 部门 --jitter --execute --operator 王五
```

`--stratify 部门` 保证每个部门都有样本;`--jitter` 给金额加 ±5% 随机扰动。

## 脱敏规则

| 类型 | 处理 | 示例 |
|---|---|---|
| 姓名 | 留首字,其余打星 | 张三 → 张* |
| 身份证 / 税号 | 留前 4 后 2 | 440301199001011234 → 4403\*\*\*\*\*\*\*\*\*\*\*\*36 |
| 银行卡 | 只留后 4 位 | 6222021234567890123 → \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*0123 |
| 手机号 | 留前 3 后 4 | 13800138000 → 138\*\*\*\*8000 |
| 金额 | 按比例缩放(默认 ×0.618) | 22000 → 13596 |

**关联键不脱敏**:员工编号、单号、合同号、凭证号这类列一律原样保留(`E003` 还是 `E003`)。脱敏掉它们,样本就没法和原表勾稽了。

## 一条必须知道的风险

金额按**固定比例**缩放,所以样本内部的比例关系仍然成立——如果同表里既有总额又有明细,理论上能反推出缩放比例,再倒推真实金额。

需要更强保护就加 `--jitter`(±5% 随机扰动),比例关系会被打散。这条风险写进了校验表的"反推提示"一栏,不会藏起来。

## 安全与边界(拒绝权)

- **源文件零改动**:输出进 `_out/`,原文件一个字节都不动
- **默认预览**:不加 `--execute` 不写盘
- **识别不了就明说**:没识别出的敏感列会在输出里标注"未识别到,用 --kinds 指定",不会假装已经脱敏
- **可复现**:`--seed` 固定随机种子,同一份输入跑两次结果一致,便于复核

## 人工复核(必读)

- 脱敏样本**不能**用于入账、付款、申报——它的金额是假的
- 外发前请自己再看一遍有没有列名里没体现的敏感字段(备注栏常常藏东西)
- 涉及薪酬、个税的数据,外发范围按公司权限规定执行

## 相邻路线转交

| 用户要做的事 | 转交给 |
|---|---|
| 先统一格式再脱敏 | `fin-table-clean` |
| 扫描全表找异常 | `fin-anomaly-scan` |
| 检查文件里有没有泄露的密钥口令 | `financial-secret-scan` |

## 自检清单

- [ ] 关联键(编号/单号)原样保留了
- [ ] 没有识别到的敏感列已用 `--kinds` 补上
- [ ] 要外发的话,已确认加过 `--jitter`

---

本 Skill 采用 BUSL-1.1 许可(源码可见,可自由使用)。

版权所有 © 2026 律令科技(深圳)有限公司(@lexord-technology)。
本技能由律令科技(深圳)有限公司开发,**财友云(caiyouyun.cn)**发布与展示。

允许个人及企业内部免费使用、复制、修改,包括内部生产环境。
未经书面许可,不得将本 Skill 或其修改版作为商业服务对外销售、转售或提供托管服务。
各版本发布之日起 4 年后自动转为 Apache License 2.0。详见随包 `LICENSE.md`。

相邻技能

数据 规划中P0 计划 已上线

财务明细表清洗标准化

日期统一 YYYY-MM-DD、金额转数值、名称按映射表替换、空值/重复/非数字进异常表,输出标准表+异常表+校验表

L0 · 清洗 / 合并 / 脱敏 / 异常
数据 规划中P0 计划 已上线

多表批量合并

按标准字段模板合并多张 Excel/CSV,保留来源文件与来源部门列,业务唯一键查重,输出合并表/重复表/缺字段表

L0 · 清洗 / 合并 / 脱敏 / 异常
数据 规划中P0 计划 已上线

全表异常数据检查

结构异常(空值/重复/格式/公式不成立)+ 业务异常(负数/超阈值/跳变/状态矛盾)分级,保留原始行号与影响金额

L0 · 清洗 / 合并 / 脱敏 / 异常
票证 规划中P0 计划 已上线

发票查重

按发票号码+代码+金额+日期组合查重,拦住重复报销与重复入账

L0 · 发票 / 票据
票证 规划中P0 计划 已上线

发票台账

进销项发票台账,按月/客户/税率汇总,导出 CSV

L0 · 发票 / 票据
资金 规划中P0 计划 已上线

银行流水解析

多银行 CSV/Excel 流水归一化成统一字段与方向标记

L0 · 现金 / 银行 / 收付
资金 规划中P0 计划 已上线

银企对账

流水与账面按金额+日期窗口匹配,输出已勾对/单边与余额调节表

L0 · 现金 / 银行 / 收付
记账 规划中P1 在建 已上线

批量生成记账凭证

从业务单据表按科目映射批量生成凭证草稿,借贷平衡预检

L0 · 凭证 / 账簿
报表 规划中P1 在建 已上线

财务指标分析

40+ 指标(偿债/营运/盈利/成长)+ 多期趋势与同业占位

L0 · 报表 / 申报
底座 规划中P0 计划 已上线

税费计算

增值税/附加/个税/印花税/所得税预缴,附公式与政策依据

L1 · 计算工具 / 归档 / 合规
底座 规划中P0 计划 已上线

财税数值工具

金额大写、含税不含税互算、价税分离、尾差分摊、百分比反算

L0 · 计算工具 / 归档 / 合规
票证 规划中P1 在建 已上线

发票 PDF 字段提取

从带文本层的数电票 PDF 抽取号码/日期/金额/税率/购销方

L0 · 发票 / 票据
本页内容由本地构建生成于 2026-09-27。技能正文以随包 SKILL.md 为准。