怎么用
- 把要发出去的文本粘贴到「原文」。脱敏结果会立即出现在下方,上面写着替换了哪几类、各几处。
- 需要的话,展开「要识别的类型」,取消不想替换的类型,例如想让 AI 看到内网 IP,就取消 IPv4。
- 检查脱敏结果,然后点「复制脱敏结果」,发给 AI 或贴到别的工具里。
- AI 的回复里如果用了占位符(比如「请检查 [PASSWORD_1] 是否过期」),把回复粘贴到页面底部的「还原 AI 的回复」,就能得到换回原值的版本。
识别规则
为什么要先脱敏
2025 年 11 月,安全公司 watchTowr 披露:两个流行的在线 JSON 格式化网站自带公开的「Recent Links」页面,列出用户保存的内容。他们从中抓到 8 万多份,里面有数据库密码、云服务密钥和各类访问令牌;他们故意上传的诱饵密钥,48 小时后就被人拿去尝试。粘贴给在线工具或 AI 的内容,最好默认它会被别人看到。本工具的识别和替换全部在浏览器里完成,不上传;对照表只存在这个页面的内存里,不写入浏览器存储。
密钥与令牌:按官方公布的前缀识别
很多平台给密钥加了固定前缀,正是为了方便扫描工具发现泄露。AWS 的标识符说明写明,访问密钥以 AKIA 开头,STS 临时密钥以 ASIA 开头;GitHub 的文档列出经典个人访问令牌以 ghp_ 开头,细粒度令牌以 github_pat_ 开头,另有 gho_、ghu_、ghs_、ghr_ 几种;Slack 的文档写明机器人令牌以 xoxb- 开头、用户令牌以 xoxp- 开头。此外还会识别以 sk- 开头的长密钥、JWT、PEM 格式的私钥块,以及 Authorization 头里 Bearer 后面的令牌。
按上下文识别密码
没有固定格式的密码,靠它周围的写法识别:连接串 scheme://用户名:密码@主机 里只替换密码那一段,用户名和主机保留,方便 AI 判断问题;password、passwd、pwd、secret、api_key、access_token、client_secret 这类字段后面跟着冒号或等号的值也会被替换。
个人信息:带校验,减少误判
身份证号按国家标准 GB 11643-1999 检查:18 位字符连同校验位的加权和除以 11 余 1(校验值为 10 时写作 X),而且中间 8 位必须是真实的出生日期。银行卡号按 Luhn 算法校验,允许中间有空格或短横线。手机号识别 1 开头、第二位为 3 到 9 的 11 位号码,可带 +86;前后紧挨着其他数字时不算,所以订单号、流水号里的数字不会被误认成手机号。
同一个值,同一个占位符
同一个邮箱在文中出现三次,三次都换成 [EMAIL_1];另一个邮箱是 [EMAIL_2]。这样 AI 仍然能看懂「谁给谁发了邮件」,回复里引用的占位符也能准确还原。
算例
| 原文 | 脱敏后 |
|---|---|
| postgres://admin:[email protected]:5432/app | postgres://admin:[PASSWORD_1]@db.example.com:5432/app |
| Authorization: Bearer abcdef0123456789ABCDEF | Authorization: Bearer [TOKEN_1] |
| key=AKIAIOSFODNN7EXAMPLE | key=[AWS_KEY_1] |
| 联系 [email protected] 或 13812345678 | 联系 [EMAIL_1] 或 [PHONE_1] |
| 身份证 11010519491231002X | 身份证 [ID_CARD_1] |
18 位数字 110105194912310021 的校验位不对,不会被当成身份证号;6222021001123456780 通不过 Luhn 校验,也不会被当成银行卡号。反过来,「+86 13812345678」去掉加号后碰巧能通过 Luhn 校验,本工具先识别手机号,所以它会被正确地标成手机号。
局限
- 规则只能识别有特征的内容。姓名、地址、公司名、没有字段名提示的密码,以及格式不常见的密钥,都可能漏掉。发出去之前请再看一遍。
- 规则也可能误判,例如恰好符合格式的长数字。检查结果时如果发现不该替换的,可以在类型里取消对应项。
- 只识别 IPv4,不识别 IPv6 和 MAC 地址。
- 脱敏只处理你粘贴的文字,图片、截图、文件附件里的信息需要另行处理。
- 已经泄露的密钥,脱敏也补救不了,应当立即到对应平台吊销并更换。
常见问题
脱敏后的内容能直接发给 ChatGPT 或 Claude 吗?
识别到的密钥和个人信息会被替换,但规则无法覆盖所有情况,例如姓名和地址。发送前请再检查一遍。
对照表存在哪里?
只在当前页面的内存里,不上传,也不写入浏览器存储。关闭或刷新页面就没有了。
为什么同一个手机号只显示一个占位符?
同一个值总是换成同一个占位符,这样 AI 能看出它们是同一个人或同一个账号,回复也能准确还原。
怎么判断一串数字是不是身份证号?
按 GB 11643-1999 检查校验位,并检查中间 8 位是不是真实日期,两项都通过才替换。
密钥已经发出去了怎么办?
立即到对应平台吊销这把密钥并生成新的,同时检查使用记录。