LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

利用SQL进行身份证号码校验

admin
2024年3月15日 23:26 本文热度 445

在实际项目中,我们有时可能需要对人员的身份证号码的真实性进行测试,为此我们需要掌握身份证号码的校验原理以及测试的方法。

身份证校验原理:

身份证号码中的校验码是身份证号码的最后一位,是根据GB 11643-1999中有关公民身份号码的规定,根据精密的计算公式计算出来的,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码,最后一位是数字校验码。

(1)身份证号码的组成:AAAAAA-YYYYMMDD-CCC-X

6位数字地址码 + 8位数字出生日期码 + 3位数字顺序码 + 1位数字校验码

(2)身份证第 1-17 位分别乘以对应的权重因子:

(3)将乘积之和取模 11(即除以 11 取余数),然后根据下表得到对应的第 18 位校验码

其中 X 其实代表的是 10;身份证号码第 17 位代表性别,奇数为男性,偶数为女性。

测试案例:

这里我们以2022年06月09日公安部发布A级通缉令公开通缉12名电信网络诈骗集团重大头目和骨干人员的三名人员为例,来测试身份证的校验值。

具体测试SQL语句如下:

WITH xx AS(

SELECT idcard,(

SUBSTRING(idcard,1,1)*7 +

SUBSTRING(idcard,2,1)*9 +

SUBSTRING(idcard,3,1)*10 +

SUBSTRING(idcard,4,1)*5 +

SUBSTRING(idcard,5,1)*8 +

SUBSTRING(idcard,6,1)*4 +

SUBSTRING(idcard,7,1)*2 +

SUBSTRING(idcard,8,1)*1 +

SUBSTRING(idcard,9,1)*6 +

SUBSTRING(idcard,10,1)*3 +

SUBSTRING(idcard,11,1)*7 +

SUBSTRING(idcard,12,1)*9 +

SUBSTRING(idcard,13,1)*10 +

SUBSTRING(idcard,14,1)*5 +

SUBSTRING(idcard,15,1)*8 +

SUBSTRING(idcard,16,1)*4 +

SUBSTRING(idcard,17,1)*2) % 11 AS '校验和模值'

FROM tongji)

SELECT idcard, RIGHT(idcard,1) AS '身份证校验值',

CASE WHEN 校验和模值 = 0 THEN '1'

WHEN 校验和模值 = 1 THEN '0'

WHEN 校验和模值 = 2 THEN 'X'

WHEN 校验和模值 = 3 THEN '9'

WHEN 校验和模值 = 4 THEN '8'

WHEN 校验和模值 = 5 THEN '7'

WHEN 校验和模值 = 6 THEN '6'

WHEN 校验和模值 = 7 THEN '5'

WHEN 校验和模值 = 8 THEN '4'

WHEN 校验和模值 = 9 THEN '3'

WHEN 校验和模值 = 10 THEN '2'

ELSE '其他'

END

AS '审计校验值'

FROM xx;

测试结果:

可以看到,身份证校验值和审计校验值是一致的。


该文章在 2024/3/18 18:49:59 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved