跳转到主内容
全部文档

本地脱敏

访谈稿、会议纪要、病历摘要要发给别人之前,得先确认真名换了、手机号和身份证没漏。redact 把这件事做成三步:检测、替换、反查。全程在你的电脑上跑,免费,文件不上传。

第一步:检测

什么参数都不加,就是只检测、不修改:

bash
42md tools redact 访谈稿.md

默认检测手机号、身份证号、邮箱、银行卡号,身份证和银行卡会核对校验位,减少误报。要连网址一起查,用 --rules all;只查其中几类:

bash
42md tools redact 访谈稿.md --rules phone,email

人名、机构名靠规则认不出来,需要写进映射表。

第二步:写映射表

映射表就是一张 Markdown 表格:左列是真实信息,同一个人的多个叫法用 / 隔开;右列是替换成的代号。

markdown
## 人物| 真实信息 | 脱敏代号 | 说明 ||----------|----------|------|| 张三 / 小张 / zhangsan@example.com | G0462 | 含所有别名 || 李四 / 老李 | G0463 | |
## 公众人物(保留真名)- 王小波

标题里带「公众人物」或「保留真名」的那一节,列出的名字会原样保留,不会被当成命中,也不会被替换。

映射表也可以写成 YAML,顶层用 entries、keep 等字段,会按内容自动识别。

带上映射表再检测一次,可以看到哪些已经在表里、哪些还没覆盖:

bash
42md tools redact 访谈稿.md --map 化名表.md

第三步:替换

bash
42md tools redact 访谈稿.md --apply --map 化名表.md

产物是 访谈稿_redacted.md,原文件不动。同一个名字每次都换成同一个代号,你手里有表就能对得上。

替换完会自动反查一遍:映射表里的真名只要还有残留,就不产出文件,提示你补全别名。

检测到、但映射表里没有的隐私信息(比如一个没登记的手机号),默认用 [已删除] 盖住,照常产出并提醒你。处理方式可以改:

  • --on-miss fail:一遇到就中止,不产出
  • --on-miss mask:照常盖住,不提示
  • --mask 换掉 [已删除] 这个遮罩文字

发出前再查一次

手上有一份应该已经脱敏的文件,想单独确认它是干净的:

bash
42md tools redact 访谈稿_redacted.md --verify --map 化名表.md

放进脚本

结果用退出码表示,接脚本很方便:

退出码含义
0干净
1读写失败或用法错误
2检测到隐私信息
3替换或反查后仍有残留,不产出
4映射表或规则文件有误

--json 输出结构化结果,每个文件一行。自己的检测规则可以写成 YAML,用 --rules-file 追加。

下一步

  • 敏感资料的转换和 AI 处理也留在本机:
  • 哪些数据会上传、放在哪里: