以下是一个用Python编写的身份证校验程序:

def validate_id(id_number):
    # 校验身份证号码长度和格式
    if len(id_number) != 18:
        return False
    if not id_number[:-1].isdigit() or not (id_number[-1].isdigit() or id_number[-1].upper() == 'X'):
        return False
    
    # 定义身份证号码校验规则
    coefficients = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
    check_code_mapping = {0: '1', 1: '0', 2: 'X', 3: '9', 4: '8', 5: '7', 6: '6', 7: '5', 8: '4', 9: '3', 10: '2'}
    
    # 计算校验码
    checksum = sum(int(id_number[i]) * coefficients[i] for i in range(17))
    remainder = checksum % 11
    check_code = check_code_mapping[remainder]
    
    # 比较校验码
    if id_number[-1].isdigit():
        return check_code == id_number[-1]
    else:
        return check_code == id_number[-1].upper()

# 测试
id_number = input("请输入身份证号码:")
if validate_id(id_number):
    print("身份证号码校验通过")
else:
    print("身份证号码校验不通过")

请注意,该程序只是简单的校验身份证号码的格式和最后一位校验码是否正确,无法保证身份证号码的真实性


原文地址: http://www.cveoy.top/t/topic/i0Sg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录