piapia123
zh

敏感信息脱敏

文本

所有处理都在浏览器本地完成,数据不上传服务器

输入
把文件拖到这里可直接载入
输出

发截图、贴工单、把日志发给客服之前,把里面的手机号、身份证、卡号、邮箱、密钥打掉。 ⚠️ 先说清楚:正则脱敏永远不完整。 它只认得出格式固定的那几类;姓名、地址、病情描述、你自己定的 ID 格式(`UID-9f3a2b`)都认不出来;把手机号写成「一三八 一二三四 五六七八」也照样绕过去。所以它是发出去之前的一道保险,不是「处理完就能随便发」的许可 —— 真要对外发布的数据,需要的是按字段级别的审核。 打码规则是「保留头尾、中间打掉」。 保留前几位与后几位是为了让人能核对「是不是这一条」,同时不足以还原 —— 银行流水、快递单都是这么印的。邮箱保住 `@` 后面的域名(公司邮箱与个人邮箱的区别常常正是要看的东西),密钥只留前缀(`sk_live_` 说明是生产密钥、`AKIA` 说明是 AWS),私钥块整段换成一句话。 ⚠️ 只认确认无疑的:身份证要求校验位正确、卡号要求通过 Luhn —— 因为脱敏是会改内容的操作,误伤比漏掉更麻烦(漏掉用户不知道,误伤他一眼就看到了,还以为是工具坏了)。

功能

  • ⚠️ 页面第一行就写明「正则脱敏永远不完整」,并列出它认不出的那几类
  • 八类打码:手机号、身份证、银行卡号、邮箱、API 密钥、JWT、私钥块、IP 地址
  • 五种预设:全部 / 联系方式 / 证件与卡号 / 密钥与令牌 / 网络
  • ⚠️ 身份证要求校验位正确、卡号要求通过 Luhn —— 误伤比漏掉更麻烦
  • ⚠️ 密钥只认有明确前缀的(`sk_live_`、`AKIA`、`ghp_`、`AIza` 等):通用规则会把哈希、Base64 内容全打掉,那是在改用户的数据
  • 邮箱保住域名(`zh····@example.com`),让人还能看出是哪一家
  • 私钥块整段替换成 `[PRIVATE KEY REDACTED]` —— 打成一堆星号反而看着像「泄漏了一半」
  • 打码字符可换(有些场合用 `*` 或 `●`)
  • 可选「只列对照」模式:逐条给出「原文 → 脱敏后」,便于先核对再决定发不发
  • ⚠️ 同一段不会被两个规则各改一次(按已占用区间处理)

使用方法

  1. 把要去敏的文本粘进来
  2. 选要脱敏的类型(默认全部),需要的话换打码字符
  3. 结果给出脱敏后的文本与「改了什么的计数」
  4. 拿不准时先切到「只列对照」,看清改了什么再决定

常见问题

脱敏之后就能随便发了吗?
不能。 正则只认格式固定的东西,而「敏感」不取决于格式:一个人的姓名、住址、公司名、病名、行程在正文里,工具完全看不见。另外你自己定的编号格式(`UID-9f3a2b`)它也不认识。所以这里的定位是「发出去前的一道保险」—— 它挡掉最常见的几类泄漏,但要不要发仍然得你自己判断。
为什么身份证号校验位不对就不打码?
因为脱敏是会改内容的操作,而误伤比漏掉更麻烦:漏掉一处用户不知道,误伤一处他一眼就看到了,还会以为工具坏了或者自己的数据被弄乱。所以这里只打确认无疑的:身份证要求校验位正确,卡号要求通过 Luhn。代价是「格式对但校验位错的身份证」不会被处理 —— 那种串通常本来就不是身份证。
为什么有些密钥没有被识别?
因为这里只认有明确前缀的密钥(`sk_live_`、`AKIA`、`ghp_`、`xoxb_`、`AIza` 等)。换成通用规则 —— 「一长串字母数字」—— 会把哈希、Base64 内容、无意义的 ID 全打掉,那是在改用户的数据而不是脱敏,用户拿到的文本就没法用了。对于没有前缀的自定义密钥,请手动处理。
邮箱为什么保留域名?
因为域名往往正是要看的信息:`zhangsan@company.com` 与 `zhangsan@gmail.com` 在排查问题时区别很大,而在工单里贴出「这个人是公司邮箱」通常并不敏感。所以本地部分打掉、域名保留。若连域名也不能露,把打码字符换成别的之后手工再处理一次即可。

相关工具