敏感信息脱敏检查引擎·专业版

SKILL运维和基础设施
运维和基础设施 未标注权限 许可证不明确
安装这个技能

面向企业数据、客服、运营与开发的敏感信息自动脱敏引擎(专业版)。在免费版识别规范基础上,提供可直接运行的确定性扫描类:输入任意文本,自动识别手机号(1 开头 11 位)、身份证(18 位含 X)、银行卡(16-19 位)、邮箱四类敏感信息,按标准口径掩码(手机 138****5678、身份证 110101********X、银行卡保留前 4 后 4、邮箱保留首字符与域名),输出各类命中数量、命中明细、脱敏后文本与合规状态(PASS/NEED_MASK)。按身份证→手机号→银行卡→邮箱顺序扫描,避免 18 位身份证被银行卡误判;15 位、20 位数字等边界不误判。商品类技能,引擎已通过 6 正例 + 5 边界断言测试,可批量用于客户资料、聊天记录、系统日志、AI 训练语料、对外文档的发布前脱敏。

一句话选型结论

按资料字段整理

敏感信息脱敏检查引擎·专业版是运维和基础设施类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类运维和基础设施 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_9f56358d/zsai-data-mask-checker-pro
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

运维和基础设施
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_9f56358d仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验2026-11-06上游最后核验时间 · 数据更新 2026-11-06
正文体量6.4 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
查服务与日志

按现象定位服务状态与日志线索。

写部署与巡检脚本

把重复的部署、巡检写成脚本。

故障排查

按步骤排查网络、依赖与配置。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在运维和基础设施场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
敏感信息脱敏检查引擎·专业版当前 未标注权限 未标注 未标注 未标注 有
Azure 部署 调用外部服务 GitHub 仓库 664.2 万 Codex、Claude、Cursor 有
Azure diagnostics 问题管理 调用外部服务 GitHub 仓库 657.6 万 Codex、Claude、Cursor 有
Azure aigateway 部署 调用外部服务 GitHub 仓库 655.3 万 Codex、Claude、Cursor 有
Azure AI 搜索 调用外部服务 GitHub 仓库 651.4 万 Codex、Claude、Cursor 有
Azure Cloud migrate 部署 调用外部服务 GitHub 仓库 650.7 万 Codex、Claude、Cursor 有

SKILL.md 全文

6.4 KB
模型实际读到的说明书原文,来自技能仓库

敏感信息脱敏检查引擎·专业版

输入 / 输出

输入:任意中/英文文本。
输出 report 字典:has_sensitive(是否含敏感信息)、counts(mobile/id_card/bank_card/email 四类数量)、total(总数)、hits(命中类型与掩码样例)、masked_text(脱敏后文本)、compliance(PASS / NEED_MASK)。

使用示例

from data_mask import scan_text, mask_text
r = scan_text("联系我 13812345678,邮箱 abc.test@example.com")
print(r["counts"])          # {'mobile': 1, 'id_card': 0, 'bank_card': 0, 'email': 1}
print(r["masked_text"])     # 联系我 138****5678,邮箱 a***@example.com
print(r["compliance"])      # NEED_MASK
print(mask_text("无敏感信息的产品介绍"))  # 原样返回

引擎代码:data_mask.py

# -*- coding: utf-8 -*-
"""数据脱敏检查器:手机号/身份证/邮箱/银行卡 识别、计数、掩码与合规判定。

确定性正则,可断言。扫描顺序:身份证 → 手机号 → 银行卡 → 邮箱(数字型按长度优先级),
避免 18 位身份证被银行卡误判。
"""
import re

# 身份证:18 位(前 17 位数字 + 末位数字/X),先于银行卡
RE_ID_CARD = re.compile(r"(?<!\d)(\d{6})(\d{8})(\d{3})([\dXx])(?!\d)")
# 手机号:1[3-9] + 9 位
RE_MOBILE = re.compile(r"(?<!\d)(1[3-9]\d{9})(?!\d)")
# 银行卡:16~19 位纯数字
RE_BANK = re.compile(r"(?<!\d)(\d{16,19})(?!\d)")
# 邮箱
RE_EMAIL = re.compile(r"([A-Za-z0-9._%+-]+)(@[A-Za-z0-9-]+\.[A-Za-z0-9.-]+)")


def mask_mobile(m):
    s = m.group(1)
    return s[:3] + "****" + s[-4:]


def mask_idcard(m):
    return m.group(1) + "********" + m.group(4)


def mask_bank(m):
    s = m.group(1)
    return s[:4] + "*" * (len(s) - 8) + s[-4:]


def mask_email(m):
    user, domain = m.group(1), m.group(2)
    return user[0] + "***" + domain


def scan_text(text):
    """扫描文本,返回各类命中数量、明细、脱敏文本与合规状态。"""
    text = text or ""
    spans = []  # (start, end, kind, masked)

    # 1) 身份证
    for m in RE_ID_CARD.finditer(text):
        spans.append((m.start(), m.end(), "id_card", mask_idcard(m)))
    occupied = [(s, e) for s, e, _, _ in spans]

    def free(a, b):
        return not any(a < e and b > s for s, e in occupied)

    # 2) 手机号(避开身份证占用区)
    for m in RE_MOBILE.finditer(text):
        if free(m.start(), m.end()):
            spans.append((m.start(), m.end(), "mobile", mask_mobile(m)))
    occupied = [(s, e) for s, e, _, _ in spans]

    # 3) 银行卡(避开身份证;16~19 位)
    for m in RE_BANK.finditer(text):
        if free(m.start(), m.end()):
            spans.append((m.start(), m.end(), "bank_card", mask_bank(m)))
    occupied = [(s, e) for s, e, _, _ in spans]

    # 4) 邮箱
    for m in RE_EMAIL.finditer(text):
        spans.append((m.start(), m.end(), "email", mask_email(m)))

    spans.sort(key=lambda x: x[0])

    # 从后往前替换,避免偏移
    masked = text
    for s, e, _, rep in sorted(spans, key=lambda x: -x[0]):
        masked = masked[:s] + rep + masked[e:]

    counts = {"mobile": 0, "id_card": 0, "bank_card": 0, "email": 0}
    for _, _, kind, _ in spans:
        counts[kind] += 1

    hits = [{"kind": k, "masked": rep} for _, _, k, rep in spans]
    return {
        "has_sensitive": len(spans) > 0,
        "counts": counts,
        "total": len(spans),
        "hits": hits,
        "masked_text": masked,
        "compliance": "PASS" if len(spans) == 0 else "NEED_MASK",
    }


def mask_text(text):
    """直接返回脱敏后的文本。"""
    return scan_text(text)["masked_text"]


if __name__ == "__main__":
    import json
    demo = "联系我 13812345678,身份证 11010119900307881X,邮箱 abc.test@example.com," \
           "卡号 6222021234567890123。"
    print(json.dumps(scan_text(demo), ensure_ascii=False, indent=2))

掩码口径(标准)

类型 原文 脱敏后
手机号 13812345678 138****5678
身份证 11010119900307881X 110101**X
银行卡 6222021234567890123 6222*****0123
邮箱 abc.test@example.com a***@example.com

边界处理(已覆盖)

  • 18 位身份证(含末位 X)优先识别,不被误判为银行卡;
  • 19 位借记卡、16 位信用卡均识别为银行卡;
  • 15 位数字、20 位及以上连续数字不识别为银行卡(避免误掩订单号/流水号);
  • 无敏感信息时返回 compliance=PASS、原文不变;
  • 空文本不报错;
  • 手机号不会被身份证、银行卡规则误判。

断言测试结果

已通过 6 正例(手机号、身份证含 X、邮箱、19 位银行卡、混合文本、16 位银行卡)+ 5 边界(15 位数字、20 位数字、无敏感信息、空文本、纯 18 位数字身份证),全部通过。

批量接入建议

  • 对客户资料、聊天记录、日志、训练语料按批扫描,命中 NEED_MASK 自动掩码后再入库;
  • 可嵌入导出脚本、对外文档发布流程、客服工单系统;
  • 按 counts 统计敏感信息密度,定位高发泄露环节;
  • 脱敏仅为去标识化,对需完全匿名的数据建议直接删除相关字段。

常见问题

5 问
答案由本站依据条目字段整理
敏感信息脱敏检查引擎·专业版怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_9f56358d/zsai-data-mask-checker-pro。安装方式为未标注。装完刷新技能列表或重开客户端。

敏感信息脱敏检查引擎·专业版支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

敏感信息脱敏检查引擎·专业版权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

敏感信息脱敏检查引擎·专业版收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

敏感信息脱敏检查引擎·专业版用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 2026-11-06。