身份证号码校验算法详解
创作时间:
作者:
@小白创作中心
身份证号码校验算法详解
引用
搜狐
1.
https://m.sohu.com/a/861969418_122078233?scm=10008.1479_13-1479_13-68_68.0-3449004.0.0
中国大陆第二代身份证号码由18位数字或字母组成,其中每一位都有其特定的含义。本文将详细介绍身份证号码的结构及其校验算法,并提供Python代码实现,帮助读者更好地理解和应用这一算法。
身份证号码的结构
中国大陆第二代身份证号码由18位数据或字母组成,每位数据都有特定的含义,结果如下:
每组数字都有不同的含义:
- 第1至2位数字代表所在省(直辖市、自治区)的代码;
- 第3至4位数字代表所在地级市(自治州)的代码;
- 第5至6位数字代表所在区(县、自治县、县级市)的代码;
- 第7-14位数字代表出生年、月、日;
- 第15-16位数字代表所在的派出所代码;
- 第17位数字表示性别,奇数表示男性,偶数表示女性;
- 第18位是校验码,用于验证身份证号码的正确性。
身份证号码的校验算法
身份证号码的校验算法主要通过计算加权和、求余数、查找校验码等步骤来完成。具体步骤如下:
- 将身份证号码的前17位数字分别乘以对应的权重(从左到右依次为7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2)。
- 将上一步得到的结果相加,得到加权和。
- 将加权和除以11,得到余数。
- 根据余数查找对应的校验码。余数与校验码的对应关系如下:
余数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|---|
校验码 | 1 | 0 | X | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
例如,对于身份证号码32050219801231001X,其前17位数字为32050219801231001,对应的权重为7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2。计算加权和为:
37 + 29 + 010 + 55 + 08 + 24 + 12 + 91 + 86 + 03 + 17 + 29 + 310 + 15 + 08 + 04 + 1*2 = 180
将180除以11,得到余数为1,对应的校验码为0,与身份证号码中的校验码X不匹配,说明这个身份证号码是错误的。
Python代码实现
以下是身份证号码校验算法的Python代码实现:
def validate_id_card(id_card):
# 定义权重和校验码映射
weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
check_codes = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
# 计算加权和
weighted_sum = sum(int(id_card[i]) * weights[i] for i in range(17))
# 计算余数
remainder = weighted_sum % 11
# 获取校验码
check_code = check_codes[remainder]
# 检查校验码是否匹配
return check_code == id_card[17]
# 测试身份证号码
id_card = '32050219801231001X'
print(validate_id_card(id_card))
这段代码定义了一个validate_id_card函数,用于验证身份证号码的正确性。函数首先定义了权重和校验码映射,然后计算加权和和余数,最后获取校验码并检查是否与身份证号码中的校验码匹配。测试身份证号码32050219801231001X的结果为False,说明这个身份证号码是错误的。
热门推荐
卫生间防水检测,你做对了吗?
民航航班号编码规则:两字码加四位数字的含义
酒精性肝病治疗指南:戒酒、营养支持与6种保肝药物方案
中医养生的护腰保健
从成都到拉萨:318国道自驾游必备攻略
紫色:东西方文化中的神秘色彩
远离伤害:识别身边人品差朋友的四个关键特征
自驾游中国:36条经典线路带你玩转新疆西藏等十大目的地
温州医大研发防龋齿水凝胶,日本研制牙齿再生药
从作息到饮食运动:癫痫患者预防发作的三大要点
燕麦、坚果、蔬果:坐骨神经痛患者的饮食建议
澳超第11轮前瞻:中央海岸水手主场迎战墨尔本城,逆袭还是延续?
一贯煎:治疗慢性肝病的中医经典方剂
呼和浩特护城河北街:古城墙下的时尚新地标
黄山日出打卡攻略:绝美日出不容错过
春节前夕农贸市场火灾风险高,这些防火要点请牢记
医生提醒:咸鸭蛋虽营养,但这些人不宜多吃
“江南亚马逊”尚湖水上森林:春赏牡丹,夏观荷,秋看彩叶,冬品红杉
大理石台面裂缝修复神器——云石胶
如何判断摩托车是几手车?购买二手摩托车时怎样鉴别车况?
慢性肾脏病自我检测,你get了吗?
互联网企业里的独特称呼:从“老板”到花名的平等文化
探访世界最大射电望远镜:贵州天眼深度游览全攻略
成立半年挽回7亿损失,全国首个联通集团级反诈中心显成效
基因检测儿童自闭症准确吗?几周内有什么结果?
粪便潜血检测:结直肠癌早筛的“第一道防线”
中日友好医院发布新型抗流感药物:显著改善症状并降低病毒载量
从“万事俱备只欠东风”到“三个臭皮匠”:三国歇后语趣谈
续断怎么泡水喝
冬虫夏草产量锐减70%,人工培育迎来新突破