尾数校验算法
1. 请教。银行卡的尾数最后面那位数是验证码
银行卡的最后一位数字是校验位,用于验证银行卡的有效性。谁要是转账时输错卡号能转到其他人账户,这运气和RP无法形容了。还有一些人在同一柜员处连着开卡,发现银行卡不是连号,以为是工作人员随机拿的卡,其实把最后一位校验数字忽略是连号的。银行卡用的是Luhn检验数字算法,也叫做模数10公式,是一种简单的算法银行卡校验过程1、从卡号最后一位数字开始,逆向将奇数位相加。2、从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和。3、将奇数位总和加上偶数位总和,结果应该可以被10整除。例如,卡号是:5432123456788881则奇数、偶数位(红色数字)分布:5432123456788881奇数位数字是 4 2 2 4 6 8 8 1 求和=35偶数位乘以2(乘积为两位数要减去9)的结果:1 6 2 6 1 5 7 7,再求和=35。最后35+35=70可以被10整除,认定校验通过
2. 身份证的尾数怎么计算
身份证的尾数的计算方法为:
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。(即余数0对应1,余数1对应0,余数2对应X...)
5、通过上面得知如果余数是3,就会在身份证的第18位数字上出现的是9。如果对应的数字是2,身份证的最后一位号码就是罗马数字X。
例如:某男性的身份证号码为(53010219200508011X), 我们看看这个身份证是不是合法的身份证。
首先我们得出前17位的乘积和【(5*7)+(3*9)+(0*10)+(1*5)+(0*8)+(2*4)+(1*2)+(9*1)+(2*6)+(0*3)+(0*7)+(5*9)+(0*10)+(8*5)+(0*8)+(1*4)+(1*2)】是189,
然后用189除以11得出的结果是189/11=17----2,也就是说其余数是2。
最后通过对应规则就可以知道余数2对应的检验码是X。所以,可以判定这是一个正确的身份证号码。
(2)尾数校验算法扩展阅读:
身份证最后一位校验码
根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。
作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,
因为如果用10做尾号,那么此人的身份证就变成了19位,而19位的号码违反了国家标准,并且中国的计算机应用系统也不承认19位的身份证号码。Ⅹ是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。
3. 通过excle使用luhn算法计算银行卡最后一个校验数字 一个银行卡号是19位,前面18位是有简
1、
用mid()计算第二位
=(MID(A1,2,1)*2>9)*(MID(A1,2,1)*2-9)+(MID(A1,2,1)*2<10)*MID(A1,2,1)*2
用mid()计算第四位
=(MID(A1,4,1)*2>9)*(MID(A1,4,1)*2-9)+(MID(A1,4,1)*2<10)*MID(A1,4,1)*2
.........
用mid()计算第一位(奇数位之和)
=(MID(A1,1,1)+(MID(A1,3,1)+(MID(A1,5,1)+。。。。。
2、将上述公式相加
如果取尾数:
=right(结果,1)
3、如果信用卡号码是合法的,总和可以被10整除。
校验位:总和尾数与10的补数(如为10,则为0)
=(right(结果,1)>0)*(10-right(结果,1))
4、公式太长,建议:分多个辅助单元格,再将结果相加,最后用right()处理。
4. 身份证号码的最后一位校验码是怎么计算出来的
先将身份证前面的17位数分别乘以不同的系数,然后将每一个相乘的结果相加,用所得之和除以11,看余数是多少,余数是0--9尾数就是0-9,如果余数是10,那么身份证的第18位数字就用罗马数字的【χ代替】。
因为是10的话就有19位数字了,与身份证号码十八位数的国家标准不相符合。因为是10的话就有19位数字了,与身份证号码十八位数的国家标准不相符合。
X:英语中第24个字母。X 表示未知、无限,X 还有“目标”和“希望”,X 在社会学界表示“完美”,千言万语都可以用 X 来传递。数学中 X 在方程中通常表示未知数的值。在罗马数字中,X 表示十。
(4)尾数校验算法扩展阅读:
身份证号码18位数字其表示的含义分别为:
第1、2位, 所在省份的代码;
第3、4位 :所在城市的代码;
第5、6位:所在区县的代码;
第7——14位 :出生年、月、日
(7、8、9、10位是年,11、12位是月,13、14位是日);
第15、16位 :所在地派出所的代码;
第17位 :奇数1、3、5、7、9表示男性,偶数2、4、6、8表示女性;
第18位:校检码:为0——9数字,或者罗马数字χ表示。
5. 18位身份证号最后一位(检验码)是怎么算出来的
公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码,可以用字母表示如为ABCDEFYYYYMMDDXXXR。其含义如下:
1. 地址码(ABCDEF):表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。
2. 出生日期码(YYYYMMDD):表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日分别用4位、2位(不足两位加0)、2(同上)位数字表示,之间不用分隔符。
3. 顺序码(XXX):表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
4.校验码(R),一位数字,通过前17位数字根据一定计算得出。
三、关于地址码含义的详细解释:
身份证前六位是地区代码,我们用ABCDEF表示。 代码的解释规则如下:
A:国内区域
1 华北三省二市
2 东北三省
3 华东六省一市
4 华南六省
5 西南四省一市
6 西北五省
7 台湾
8 港澳
B(或者说是AB,就是前2位):省(直辖市,自治区,特别行政区)代码
按照A划定的分区定义省代码,有直辖市的,直辖市列前,其余按离直辖市的距离排序,没有直辖市的,按离北京的远近排序。
具体省(直辖市,自治区,特别行政区)代码如下:
11-15 京 津冀 晋 蒙
21-23 辽 吉黑
31-37 沪 苏浙 皖 闽 赣 鲁
41-46 豫 鄂湘 粤 桂 琼
50-54 渝 川贵 云 藏
61-65 陕 甘青 宁 新
81-82 港 澳
CD:城市代码
从01开始排,对于直辖市,CD=01表示市辖区,CD=02表示辖县;省的城市代码从省会开始排,比如2101=沈阳 2102=大连…… 只有地级城市有独立的城市代码,县级市没有。
EF:市辖区、郊区、郊县、县级市代码
如果EF=00,指代这个城市,不特定区县;对于非直辖市,如EF=01,指代市辖区(任意一个区),02开始指代特定的区。
其中:
E=0代表市辖区,
E=1代表郊区,
E=2代表郊县,
E=8代表县级市。
对于直辖市,从01开始就依次排区,没有市区和郊区的代码区分。:
有关更详细的资料见附录。
四、生日期码(YYYYMMDD)表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用19810511表示。
五、顺序码(XXX)(身份证第十五位到十七位)是县、区级政府所辖派出所的分配码,每个派出所分配码为10个连续号码,例如“000-009”或“060-069”,其中单数为男性分配码,双数为女性分配码,如遇同年同月同日有两人以上时顺延第二、第三、第四、第五个分配码。如:007的就是个男生,而且和他同年月日生的男生至少有两个,他们的后四位是001*和003*。分配顺序码中“999、998、997、996”四个顺序号分别为男女性百岁以上老人专用的特定编号。
六、关于校验码
校验码是通过一系列数学计算得出来的,具体校验的计算方式如下:
1. 对前17位数字本体码加权求和
公式为:S = Sum(Ai * Wi), i = 0, ... , 16
其中Ai表示第i位置上的身份证号码数字值,Wi表示第i位置上的加权因子,其各位对应的值依次为: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
通俗解释:身份证第一位数字X7+第二位X9+第三位X10+第四位X5+第五位X5+第六位X8+第七位X4+第八位X1+第九位X6+第十位X3+十一位X7+十二位X9+十三位X10+十四位X5+十五位X8+十六位X4+十七位X2;计算出总和(用S)表示。
2. 以11对计算结果取模
Y = mod(S, 11)
通俗解释:用S除以11,看最后的余数。如果除尽,为0;余数为1,则计为1;最大余数为10;全部数字为0-10共11个数字。(用Y表示)。
3. 根据模的值得到对应的校验码
对应关系为:
Y值: 0 1 2 3 4 5 6 7 8 9 10
校验码: 1 0 X 9 8 7 6 5 4 3 2
通俗解释:余数为0,则校验码为1;依次类推:余数为1,则校验码对应0;以下:2--X;3--9;4--8;5--7;6--6;7--5;8--4;9-3;10-2。
如果校验码不符合这个规则,则肯定是假号码。
关于18位身份证号码尾数是“X”的一种解释:因为按照上面的规则,校验码有11个,而不是10个,所以不能用0-9表示。所以如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位,而19位的号码违反了国家标准,并且我国的计算机应用系统也不承认19位的身份证号码。Ⅹ是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。
根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
6. 身份证的最后一位为什么会有X
因为如果用10作为尾号,那么这个人的身份证就会变成19位数字,这19位数字违反了国家标准,中国的计算机应用系统不会识别出这19位数字的身份证号码。居民身份证号码按国家标准编制,由18位数字组成:前6位为行政区划代码,第7至14位为出生日期代码,第15至17位为序列码,第18位为校验码。
只要你在网上输入身份证号码,你就可以说关于这个人的所有信息都可以找到。因此,身份证号码是人们最费力记住的东西。然而,有一件事让人好奇。最后一个身份证号码有一个代表号码的“X”。这是什么意思?是因为这个人有什么特殊地位吗?读完下面的文章,你可能会知道发生了什么。许多人仍然不确定。
7. 身份证号最后一位数字称之为校验码,校验码的计算方式是怎样的
按照相关规定,身份号是由17个数字和1个数字校验码组成的。而最后一位校验码,就是检查身份证是否正确的主要依据。它的计算方法,主要是由前17位乘以不同的系数,最后的总和除以11。在这种情况下,得到的余数,就是校验码。
那么我们在反推的时候,就可以用身份证号乘于系数,当最后得出的余数和末尾校验码不同时,就代表这个身份证,是一个假的身份证,不符合我们国家的标准。另外,余数对应的数字不同,并不是说余数就一定是最后一位身份证号码。
3、为什么除以11看到整个计算过程,我们会发现,想要得出校验码,并非一件易事。不过在计算中,有人可能会提出疑问,最终的除以为什么是取11,而不是其他数字。
其实这个问题的答案很简单,结合校验码的功能,11是最容易检测出问题的存在。同时,它可以覆盖到大多数身份证,方便进行校验。毕竟一个国家人口众多,校验码要做到尽可能覆盖所有人。
8. 不同的银行卡号尾数有可能一样吗
完全可能;银行卡的尾号(尾数)是银行卡的校验位,它是根据约定的一种算法产生,范围是0-9,因此不同银行卡的尾数一样是高概率的事。
9. 身份证尾数号怎么算
身份证尾号属于校验码,是可以根据身份证前17位推算出来的。你可以到通查网站的“身份证尾号补全与校验”产品免费查询,只要输入身份证号码就可以返回其所在地,如图
10. 身份证号码末位数的计算方法。
根据GB11643—1999《公民身份证号码》的规定,身份证中第十八位数字的计算方法为:
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。