立即下载 知乎日报 每日提供高质量新闻资讯

我们给身份证打码的所谓「隐私保护」,有些简直形同虚设

图片:Public Domain

坏蛋,一个懒散的人

身份证号码在日常生活中是作为个人隐私最重要的环节之一,理应做好保护措施,防止个人信息泄露被用于黑产违法行为。

但很多因素使得身份证号码隐身形同虚设,先看下图的这则公示:

肥肠贴心的为失信人的身份证号打上了码(可是只打中间 8 个 ******** 有个锤子用)

由于为公众人物,百度一下就能知道大部分身份信息,所以,打码的那几位生日都不用猜就能知道是什么了。

以上是最简单的获取方式,在媒体没有曝光你的情况下,如何进一步查到你身份证呢,我们先来看看你的身份证号码是如何构成的:

1.号码的结构
公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。

2.地址码
表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按 GB/T2260 的规定执行。

3.出生日期码
表示编码对象出生的年、月、日,按 GB/T7408 的规定执行,年、月、日代码之间不用分隔符。

4.顺序码
表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。

5.校验码
根据前面十七位数字码,按照 ISO 7064:1983.MOD 11-2 校验码计算出来的检验码。

按照上述过程,我准备先拿某王姓明星小鲜肉做实验,算出他的身份证号码。大致过程如下,详细信息已省略。

先查一下百度百科,得到的信息如下生日:1999.2.33,出生于 233 省,再详细百度一下出生地,可知道为 AAA 区(该区身份证编号为 000000)。(如果是身边的好友或者同事想获取到这些基本的信息基本没难度)

有了以上两个信息,即可得知身份证号为 00000019990233****

啪!问题来了。有些人可能就会觉得这并没有什么卵用啊,剩下的四个星号,还是能有 11000 个组合,这该怎么确定?

莫慌,其实关键就在这,理论上有 11000 种组合,不过!身份证最后一位为校验码是由前 17 位数字计算得来,只有一个结果是正确的!

就好比 1+1 在计算中仅有一个答案,所以说,11000 个组合中 仅有 1/11 的号码是正确的。剩下的只有 1000 个号码。

随便百度都能搜到这种:身份证号尾数计算器 - 在线版

但是剩下的 1000 的号码好像还是有点多,这时候,还有一个信息:知道性别即可,若是性别为男,则倒数第二位的数字即为单数 1,3,5,7,9 。这样就仅剩 500 个身份证号码了。

剩下 500 个身份证号码写成爆破字典去一些实名认证用的地方去试,也就几秒钟的事情。

而且,买个身份证名字校验的接口,500 次大概也就 100 多块钱。

这样,有些居心不良的人就能轻易获取到别人的身份证号码。

吐槽:我们给身份证打码的时候,理应给身份证后 4 位打码。不过,很多平台上身份证后 4 位都作为公开的信息能直接查看。而且也能像我这样穷举出后 4 位。

这不是自相矛盾嘛。有人觉得给生日打码就行,可是,在很多平台上,生日也作为公开信息啊……

所以我认为身份证的确设置的有些不合理了,希望国家能尽快出台更好的方案吧~

当然对于那些都愿意手持身份证的妹子,我也无话可说……

扫描二维码下载知乎日报

支持 iOS 和 Android
二维码下载知乎日报
阅读更多 25 岁时做些什么,在职业生涯后半段才不会后悔? 下载 「知乎日报」 客户端查看更多