s
解释一下最后一位为X的问题:
18身份证最后一位是校验码,
是前面17位通过一个算法相加后除于11的余数再通过一个变换得来的,
除于11的余数包括1-10共11个数字,
所对应的校验码也包括1-10共11个数字,
10就用X表示,是罗马字母10。
所以一般小写的x系统不认。
评论来自电脑端
多
据说与公安部门联系过,公安部门不向外部提供校验位的计算方法
评论来自电脑端
l
那我新申请信用卡,岂不是只能用15位身份证号登记,否则不能挂在同一个网银下了阿
评论来自电脑端
s
晕死。。。
GB 11643-1999公民身份号码,标准出版社都可以买到。
评论来自电脑端
多
知道了
加权因子 (7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2)
身份证前17位*权,求和 mod 11=n
校验值a[]=('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
a[n]就是校验值
如果顺序号是“996”“997”“998”“999”表示百岁老人,这样就知道,7、8位是置18、19还是20了(千万不要出200岁老人:p:p)
评论来自电脑端
d
第十八位数字的计算方法为:
1.将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
2.将这17位数字和系数相乘的结果相加。
3.用加出来和除以11,看余数是多少?
4余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字。其分别对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2。
5.通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2。
例如:某男性的身份证号码是34052419800101001X。我们要看看这个身份证是不是合法的身份证。
首先:我们得出,前17位的乘积和是189
然后:用189除以11得出的结果是17 + 2/11,也就是说余数是2。
最后:通过对应规则就可以知道余数2对应的数字是x。所以,这是一个合格的身份证号码。
评论来自电脑端
多
GA部这帮猪头,还以为搞的很高明,把电子系统搞死就这么点东西
评论来自电脑端
s
对于前面卡友所说:GA部这帮猪头,还以为搞的很高明,把电子系统搞死就这么点东西
我想说:
公民身份号码以前叫社会保障号码,
18位校验码是采用的国际标准ISO7064:1983,MOD 11-2 校验码系统,
这个不是保密的,
所以偶搞不懂国内的银行花那么多钱建的系统就不能搞个15位-18位自动转换,
费解。
另:三多注意语言文明:@。
评论来自电脑端
多
stone是公安系统的?不好意思哈,抱歉抱歉
很重要的原因倒不是转换算法的问题,知道算法后实现对于学过编程的人都不会是问题;
评论来自电脑端