身份证号脱敏

批量给身份证号打码,可按用途保留地区码或校验位,本地处理不上传。

身份证号脱敏

全部在浏览器本地处理,原始数据不会离开您的电脑,也不写入任何存储。

身份证号为什么敏感

身份证号是能够直接定位到具体个人的号码,一旦泄露无法更换。号码本身还编码了地区、出生日期和性别,配合姓名可以精确定位到人。在个人信息分类分级里,身份证号普遍被列为敏感个人信息。

处理要求也比一般信息严格:收集要有明确目的和必要性,存储要加密,展示要脱敏,传输要加密,共享要给第三方要单独取得同意。很多业务系统出问题不是被攻击,而是测试环境用了生产数据、日志打印了完整号码这类内部疏漏。

不同岗位需要看到的信息不同

  • 客服核对身份:只需要末位几位,甚至只需要姓名和手机号后四位
  • 风控判断归属地:保留前六位地区码即可
  • 统计分析年龄分布:只需要出生年份,精确到日反而多余
  • 开发测试:应使用完全虚构的号码,不用真实数据脱敏

按最小必要原则,能少给就少给。给得越多,泄露面越大。

容易被忽略的地方

导出功能、打印模板、邮件通知、消息推送、第三方埋点,这些出口经常绕过统一的脱敏逻辑。排查时应把所有数据出口列一遍,逐个确认是否经过脱敏处理。

脱敏方式对照

方式保留信息适用场景可逆性
掩码替换长度、首尾字符测试数据、展示页面不可逆
中间省略前缀与后缀核对身份、客服查询不可逆
哈希替换无,但同值同哈希需要关联分析的场景不可逆
加密存储完整原文需要还原的业务流程可逆,需密钥
随机替换格式、长度开发测试环境不可逆

选择哪种方式取决于后续是否要还原。客服核对身份用中间省略,开发测试用随机替换,需要保留统计规律又要防泄露用哈希替换。加密虽然可逆,但密钥管理成本高,不是所有场景都值得。

常见问题

身份证号末位 X 是什么?▼
X 是校验码。身份证号最后一位是按前十七位数字算出的校验值,取值 0 到 10,10 用罗马数字 X 表示。校验码用来发现录入错误,不是个人信息。
脱敏后的号码还能用于校验吗?▼
不能。掩码会破坏校验位的计算基础,脱敏后的号码无法通过校验算法。如果后续需要校验真实性,应在脱敏前完成校验,或保留校验结果单独存储。
测试环境能不能用真实数据脱敏后使用?▼
不建议。脱敏算法一旦有缺陷,真实数据仍然可能被还原。测试环境应使用规则生成的虚构数据,只在极少数必须复现特定问题的场景下,经审批后使用脱敏数据。
为什么保留前六位就够了?▼
前六位是行政区划代码,能定位到县区级,用于归属地统计已经足够。再往后就是出生日期和顺序码,越往后越接近个人身份,风险越高。
数据库里应该怎么存?▼
建议加密存储,密钥由独立的密钥管理系统托管,应用通过接口取用。检索需求可以用密文索引或单独的哈希列实现,不要把明文放在业务表里。