身份证号的 X 是不是一个糟糕的设计?

2022-07-21 12:40:31 +08:00
 Wallace01
身份证号校验位(最后一位)的设计原理是,用前面的数字通过一系列计算结果除以 11 取余数,分别对应 1-9 和 x 。不用 10 的原因是校验效果不好。

大家觉得这个设计怎么样呢。
11299 次点击
所在节点    问与答
100 条回复
zxcslove
2022-07-21 16:37:45 +08:00
@pkoukk 是啊,但整体的普及度太小,基层单位多数当做打字机用,另外翻翻纸牌。当时社会上巨量的表单证卡还是手工填写的,位数不固定就不太合适。
tmxklzp
2022-07-21 16:37:48 +08:00
回复完后找到了个知乎问题: https://www.zhihu.com/question/20205184
killeder
2022-07-21 16:38:17 +08:00
浪费时间的话题
lisongeee
2022-07-21 16:38:31 +08:00
下一代身份证可以在背面增加二维码表示身份证号,我去做核酸老是扫半天
littiefish
2022-07-21 16:39:52 +08:00
@nutting 根据公式算出来的,你瞎编的话大概率假的
kakeiri
2022-07-21 16:40:03 +08:00
没有大统一,出生就定义了。本人是 13 开头,去潮州旅游,让登记身份证,工作人员喊了好几次不要写电话,是要写身份证号[摊手]
loading
2022-07-21 16:42:30 +08:00
如果你在身份证那个时代规划这个号码,你会用什么方式。网络没覆盖。
xmt328
2022-07-21 16:52:39 +08:00
@cpstar 校验码还能做这种事情?那不是应该叫纠错码么?
nieboqiang
2022-07-21 17:23:02 +08:00
@Akagi201 防呆设计,如果你不小心输入错了一位,能直接判断出来。
masker
2022-07-21 17:32:33 +08:00
@stephenyin 为什么你觉得你会 16 进制就很屌一样
gogorush
2022-07-21 17:48:43 +08:00
身份证号码对个人来说肯定是个特别垃圾的东西 为啥这么说 因为这东西是给旧时代的统计人员来弄的 包含太多个人信息 关键问题是 这玩意出错概率太多了 我就认识身份证号码因为同号出问题的 最好用 web3 加个人 token 验证这种 方式来代替掉
stephenyin
2022-07-21 17:53:57 +08:00
@masker #70 个人认为懂 16 进制的比不懂 16 进制的大概率会屌一点。😂
redeemer1001
2022-07-21 17:55:05 +08:00
@dcsuibian #36 最后一点戳中笑点
masker
2022-07-21 18:00:57 +08:00
@stephenyin 马云应该不懂 16 进制
shawnsh
2022-07-21 18:15:43 +08:00
@lisongeee 条形码都比二维码强,二维码太垃圾
lovelylain
2022-07-21 18:15:44 +08:00
绝对是,银行卡号最后一位也是校验位,有的卡号 16 位,有的 19 位,都没见卡号里有 X 的,制定身份证号的专家肯定是脑子有 X 才搞出这脑残玩意
snorlax
2022-07-21 19:20:37 +08:00
身份证号按二进制的方式展开后除以 11 的余数为 1(包括最后一位,X=10),也就是 Σak*2^k Ξ 1 (mod 11),k=17,16,...,1,0 ,这样只改变一位身份证号就一定通不过校验,因为要使(ai-aj)*2^k Ξ 0 (mod 11),只能使 11|ai-aj ,而 ai 和 aj 都只能取 0-9(或 X,也就是 10),所以不可能。

但是如果改成 mod 10 的话,只要 ai-aj=5 ,(ai-aj)*2^k Ξ 0 (mod 10)就可能成立,也就是改变一位身份证号也可以通过校验。所以选择了 mod 11 。
darknoll
2022-07-21 21:27:06 +08:00
非常糟糕,垃圾的设计
EminemW
2022-07-21 22:21:29 +08:00
其实校验算法很多地方都用到,比如银行卡是用这个 https://en.wikipedia.org/wiki/Luhn_algorithm
EminemW
2022-07-21 22:21:55 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/867724

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX