吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1967|回复: 12
收起左侧

[Python 原创] Python3身份证校验

[复制链接]
Alex.Merceryj 发表于 2023-5-29 09:07

python3身份证校验

  • 看到有朋友发了一个专门的身份证校验,就很感兴趣,好奇是什么原理。百度了下计算规则,发现python也可以实现。
  • 来源地址
  • 在线身份证校验

py3实现

  • 实际上就是根据身份证前17位,计算求和,然后取余找到对应的校验码。
# 身份证计算规则
# 身份证号码 最后一位随便填
s_id="530102199112214016"
# 系数
c_list=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
# 余数对应列表
s_c_list=["1","0","X","9","8","7","6","5","4","3","2"]

#s求和
s_sum=0
for index,i in enumerate(s_id[0:17]):
    s_sum=s_sum+int(i)*c_list[index]
    # print(s_sum)
# 求余数
c_mod=s_sum%11
result=s_id[0:17]+str(s_c_list[c_mod])
# 合法身份证
print(result)

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
侃遍天下无二人 + 1 + 1 热心回复!
漁滒 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

daimiaopeng 发表于 2023-5-29 11:45
def check_id_card(id_card):
    """
    身份证校验函数
    :param id_card: 身份证号码
    :return: True or False
    """
    # 身份证号码长度必须为18位
    if len(id_card) != 18:
        return False

    # 身份证号码的前17位必须为数字
    if not id_card[:17].isdigit():
        return False

    # 身份证号码的最后一位可以是数字或字母X(大小写均可)
    if not (id_card[-1].isdigit() or id_card[-1].lower() == 'x'):
        return False

    # 身份证号码校验规则
    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']
    id_card_sum = 0
    for i in range(17):
        id_card_sum += int(id_card[i]) * weights[i]

    check_code = check_codes[id_card_sum % 11]
    if check_code != id_card[-1].upper():
        return False

    return True
头像被屏蔽
oneai 发表于 2023-5-29 15:15
zhy1992 发表于 2023-5-29 10:18
这个好像就是检验最后一个校验位  合不合规把  并不涉及到是不是真实存在 好像
yaphoo 发表于 2023-5-29 10:20
真的太神奇了
zhangxuou123 发表于 2023-5-29 10:54
这技术有点高
wuxin9749 发表于 2023-5-29 11:05
zhy1992 发表于 2023-5-29 10:18
这个好像就是检验最后一个校验位  合不合规把  并不涉及到是不是真实存在 好像

对 只是通过算法去校验最后一个校验位  并不能说明真实存在
头像被屏蔽
prempeng 发表于 2023-5-29 11:07
提示: 作者被禁止或删除 内容自动屏蔽
bake 发表于 2023-5-29 11:23
PleasantXuan 发表于 2023-5-29 12:00
这个只是核验校验位,感觉只能防止手滑输错吧
laustar 发表于 2023-5-29 13:27
学习了!!!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 21:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表