
在Internet产品(尤其是Internet金融产品)的设计中,实名认证是一个非常重要的链接. 今天,我将向您介绍一个容易被忽略的主题: ID编号的制备规则及其在产品中的应用.
一种,编码格式
1999年,中国发行了第二代居民号码,该号码具有18位数字的公民身份号码,并且终身不变. 第一代居民号码是15位数字,已基本消除,因此在本文中将不再讨论.
居民格式,例如: ABCDEFYYYYMMDDXXXR
➀地址代码(ABCDEF): 指示帐户注册位置的行政区划代码(省,市,县). 如果重新划分行政区划,则在同一位置注册帐户时,地址代码可能会不一致. 行政区划代码应按照GB / T2260执行.
➁出生日期代码(YYYYMMDD): 表示居民的出生日期,年,月,日的4位数字用2位数字表示,例如19491001;出生日期是按照GB / T 7408执行的.
➂序列号(XXX): 表示同一年月,同一月和同一天出生的人在同一地址码区域中编辑的序列号,您可以根据您的的订购码知道: 我们在同一年和同一月出生的人口至少有多少人,并且有多少人在我们之前进行了户口登记. ID卡序列码的奇数分配给男性,偶数分配给女性. 这就是为什么倒数第二个奇数表示男生而偶数个数字表示女生的原因.
➃校验码(R): R之前的17位称为主体代码. R是根据车身代码和校验代码算法(ISO 7064: 1983,MOD 11-2校准)计算的. 当我们输入用于实名认证的身份号码时,我们可以根据校验码算法初步判断您输入的ID号码的格式是否正确.

其中有999、998、997和996分配给百岁老人. 您可以考虑一个问题. 在极端情况下,如果同一行政区中同一天出生的人数超过1000,该怎么办?
第二,校验码算法
将身体代码的每个数字乘以相应的加权因子和总和,除以11得到余数,然后通过校验码比较表根据余数检查校验码.
权重因子:

(对应于本体代码每个位置的加权因子)
检查代码表:


(每个剩余部分对应的校验码)
示例:
公民的号为34052419800101001X
步骤1: 将本体代码乘以加权因子:
3 * 7 + 4 * 9 + 0 * 10 +……0 * 4 +1 * 2 = 189
第2步: 计算求和后的余数除以11

189 = 2
步骤3: 查询与验证码其余部分相对应的验证码
对应于2的校验码为X编码算法,请注意X必须大写
您可以根据此算法验证您的ID号.
三,编码规则的应用
在设计产品的实名认证链接时,我们根据ID号的编码规则验证用户输入的ID号格式的有效性. 可验证信息如下:
基本信息验证:
1. 验证号为18位数字

2. 根据校验码算法确定用户输入的ID号码内容是否不正确编码算法,为避免用户输入错误,还可以确定用户是否被随机填充
3. 如果ID号的最后一位是X,则必须将其大写
4. 获取用户的生日并确定用户是否超过18岁(通常被忽略)
仅当验证以上信息时,才需要进一步验证实名验证信息的真实性. 因为调用实名接口无论成功还是失败,都必须为此付费. 不同的服务提供商有不同的价格. 一般来说,每个电话需要2-5元. 它不仅可以保证用户体验,还可以节省公司成本.
此外,您还可以有选择地获取以下信息:
1. 根据地址码获取用户的户口所在地信息
2. 确定用户的性别,奇数码是男性,偶数码是女性
作者简介: 我是一家互联网金融公司的产品经理,负责公司的第三方支付资金存管系统和银行资金存管系统的对接. 接下来,我将更新[金融支付]系列文章,以分享我的项目经验,希望为每个人带来价值.
您也可以在本节的文章这一部分中引用该文章zhuanlan.zhihu.com/p/21286417
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-175044-1.html
这是教育体制落后的具体体现
把侵略者溺死在南海
魂牵梦萦