
简介: ID号在产品设计中有许多应用校验规则,例如实名认证,银行卡绑定和财务数据输入. 本文将主要分享ID号编码规则及其在产品设计中的应用.
说明: 除非本文另有规定,否则号是指18位公民身份号码

在早期,“号码”被称为“社会安全号码”,它是15位数字. 在1999年,它被更名为公民的号码,这是第二代. 它是18位数字,终生将保持不变.
430512 19890813 136 7

公民身份号码是功能的组合,由前17位数字的身体代码和后一位数字的验证码组成. 排列顺序从左到右分别是六位地址码,八位出生日期码,三位顺序码和一位验证码.
地址代码: 表示编码对象永久居所所在的县(城市,国旗校验规则,地区)的行政区划代码. 对于新生儿,地址代码是户籍注册地的行政区划代码. 应该注意的是,随着行政区划的调整,在同一地点进行户口登记时,地址代码可能会不一致. 行政区划代码应按照GB / T2260的规定执行.
出生日期代码: 表示编码对象的年,月和日,并且年,月和日代码之间没有分隔符. 格式为YYYYMMDD,例如19980328. 按GB / T 7408的规定.
序列号: 这意味着在同一地址码标识的区域内,将序列号分配给同一年,同一月和同一天出生的人. 序列号的奇数分配给男性,偶数分配给女性.
校验码: 根据主体代码,采用ISO 7064: 1983,MOD 11-2校验码系统计算校验码. 算法可以参考以下内容. 正如前面提到的数字验证码,我们知道验证码也有X,本质上是罗马字符X,相当于10.

出生日期代码: 15位ID号的出生日期代码是4位数字,其中年份代码只有2位数字,例如590328,这意味着1959年出生.
校验码: 15位ID号中没有校验位.
将身体代码的每个数字乘以相应的加权因子和总和,除以11得到余数,然后通过校验码比较表根据余数检查校验码.
权重因子:


验证码:

算法示例:
正文代码为: 11010519491231002
第一步: 每个数字与相应加权因子的乘积之和1 * 7 + 1 * 9 + 0 * 10 + 1 * 5 + *** = 167

步骤2: 将总和除以11得到的余数为167 = 2
第三步: 根据余数2检查X并得到X
因此,完整的ID号为: 11010519491231002X
如上所述,ID号基于某些规则,并且可以从ID号中提取以下信息:
长度验证: 长度只能以15或18位数字的长度存在;输入正确性验证: 如果号码为18位,则可以根据车体代码和验证码之间的关系对进行验证. 如果输入的号码不正确,则应指出验证不正确表示号码的真实性;获取户籍的登记信息: 多数情况下,所在地是原籍地或原籍地. 对应时要注意行政区划代码的更新和迭代;出生日期及其正确性;性别: 序列码中的奇数为男性,偶数为女性;根据18位和15位的ID号编码规则和校验码算法,将15位的ID号转换为18位的ID号. 谨防坑: 因为校验码是X,所以实际上存在不同的大写和小写条目,因此请兼容或统一
作者: 付款和结算产品经理MrColin,具有一些技术知识
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-243270-1.html
还有心情在对中国说三道四
言语恰当