← 工具

Presidio

Microsoft 开源的 PII 文本与图像脱敏 SDK,覆盖信用卡/SSN/邮箱/手机号/比特币地址等常见敏感字段。支持自定义识别器和多语言上下文,Docker 一键部署,可视化 Demo 验证准确率,欧盟 GDPR/加州 CCPA 合规脱敏的标配工具,Stars 9.4K+

#66
推荐排名
9,433
GitHub Stars
6,603
推荐得分
PII 脱敏 / 数据合规
适用场景
AI工具AI应用Python自托管开源

为什么需要

出海产品处理欧美用户数据,GDPR、CCPA、HIPAA 三大合规框架都强制要求 PII 脱敏。自己写正则识别信用卡号和邮箱,漏检一个就罚 4% 全球营收。Presidio 给出 60+ 内置 PII 识别器(信用卡、SSN、邮箱、电话、姓名、地址、IBAN、医疗记录号等),支持英文、中文、西班牙文等多语种。

它做的不只是匹配模式,还会看上下文——「Apple the company」和「apple the fruit」不会误判,「May」做月份还是人名根据前后文定。可接外部 NER 模型(spaCy、transformers)做自定义识别。

怎么用

Docker 一行启动:

bash
docker run -d -p 5002:5002 -p 5001:5001 mcr.microsoft.com/presidio-analyzer:latest

调 API 检测 PII:

python
from presidio_analyzer import AnalyzerEngine
analyzer = AnalyzerEngine()
results = analyzer.analyze(text="John's IBAN is DE89 3704 0044 0532 0130 00", language="en")
for r in results:
    print(f"{r.entity_type} at [{r.start}:{r.end}] = '{text[r.start:r.end]}'")

输出会标出每个 PII 字段位置和类型,再用 Anonymizer 做替换(<PERSON><IBAN>、哈希、加密任选)。

使用案例

你做一个海外客服 SaaS,工单系统要存用户对话做 LLM 训练,但对话里有用户手机号和信用卡。Presidio 在入库前批量跑,30 分钟处理 10 万条工单,脱敏后送进 OpenAI fine-tune,原数据保留 7 天后自动删除。合规审计时调日志证明「已脱敏」,罚不到你。

注意事项

  • 准确率不是 100%,信用卡/SSN 识别接近 100%,姓名/地址靠 NER 模型大概 90%
  • 医疗数据 DICOM 图像需要 presidio-image-redactor 单独装
  • MIT 协议,可商用。生产环境建议加人工复核环节