Leifeng.com(搜索紧随其后的“ Leifeng.com”公众号)出版社: 本文作者Mr.Colin,付款和结算产品经理.
ID号在产品设计中有很多应用,例如实名认证,银行卡绑定和财务数据输入. 本文将主要分享ID号编码规则及其在产品设计中的应用.
说明: 除非本文另有规定,否则号是指18位公民身份号码
I. 号码结构
在早期,“号码”被称为“社会安全号码”,它是15位数字. 在1999年,它被重命名为公民号,即第二代,它是18位数字,并且终身不变.
430512 19890813 136 7
公民身份号码是功能的组合,由正文代码的前17位数字和验证码的最后一位数字组成. 排列顺序从左到右分别是六位地址码,八位出生日期码,三位顺序码和一位验证码.
地址代码: 表示编码目标永久居所所在的县(城市,国旗,地区)的行政区划代码. 对于新生儿,地址代码是户籍注册地的行政区划代码. 应该注意的是,随着行政区划的调整,在同一地点进行户口登记时,地址代码可能会不一致. 行政区划代码应按照GB / T 2260的规定执行.
出生日期代码: 指示编码对象的出生年份,月份和日期,在年份编码算法,月份和日期代码之间没有分隔符. 格式为YYYYMMDD,例如19980328. 按GB / T 7408的规定.
序列号: 表示分配给在同一地址代码标识的区域内的同一年,同一月和同一天出生的人的序列号. 序列号的奇数分配给男性,偶数分配给女性.
校验码: 根据主体代码,校验码是使用ISO 7064: 1983,MOD 11-2校验码系统计算的. 该算法可以在下面参考. 正如前面提到的数字验证码,我们知道验证码也有X,本质上是罗马字符X,相当于10.
两个15位数和18位数的ID号码差
出生日期代码: 15位ID号的出生日期代码是4位数字,其中年份代码只有2位数字,例如590328编码算法,这意味着1959年出生.
校验码: 15位ID号中没有校验位.
三,校验码算法
将身体代码的每个数字乘以相应的加权因子和总和,除以11得到余数,然后通过校验码比较表根据余数检查校验码.
权重因子:
验证码:
算法示例:
正文代码为: 11010519491231002
第一步: 每个数字与相应加权系数的乘积之和1 * 7 + 1 * 9 + 0 * 10 + 1 * 5 + *** = 167
第2步: 将总和除以11,得到余数167/11(余数为2)
第三步: 根据余数2检查X并得到X
因此,完整的ID号为: 11010519491231002X
四,编码规则的应用
如上所述,ID号基于某些规则,并且可以从ID号中提取以下信息:
1. 长度验证: 只有15或18位数字的长度.
2. 验证输入的正确性: 如果号码为18位,则可以根据车体代码和验证码之间的关系,验证号码输入错误. 需要指出的是,验证并不代表号的真实性.
3. 获取户籍信息: 在大多数情况下,该位置是原籍地或原籍地. 对应时要注意行政区划代码的更新迭代;
4. 出生日期及其正确性.
5. 性别: 序列码中的奇数是男性,偶数是女性.
6. 根据18位和15位ID卡号的编码规则和校验和算法,将15位ID卡号转换为18位ID卡号.
注意事项: 由于校验码为X,因此实际上存在不同的大写和小写输入. 请注意兼容性或统一性. 返回搜狐,查看更多
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-175040-1.html