在日常生活中,身份证作为个人身份的凭证,其重要性不言而喻。而咸阳作为中国陕西省的一个地级市,其身份证号码也具有一定的特殊性。本文将为你揭秘咸阳身份证号的构成,教你如何轻松识别真伪及地区信息。
身份证号码构成
中国公民的身份证号码为18位,具体构成如下:
- 前6位:行政区划代码,代表身份证持有人的户籍所在地。其中,前两位为省级行政区划代码,第三、四位为地级行政区划代码,第五、第六位为县级行政区划代码。
- 第7-14位:出生日期码,按照“年月日”的顺序排列,年、月、日之间各占两位。
- 第15-17位:顺序码,由公安机关指定,其中第17位奇数分配给男性,偶数分配给女性。
- 第18位:校验码,根据前17位数字按照ISO 7064:1983.MOD 11-2校验码计算得到。
咸阳身份证号特点
咸阳的行政区划代码为6104,因此,咸阳身份证号的前6位均为6104。以下是一些关于咸阳身份证号的注意事项:
- 行政区划代码:610400(咸阳市)
- 出生日期码:按照实际出生日期填写,例如19900101表示1990年1月1日出生。
- 顺序码:根据性别分配,男性为奇数,女性为偶数。
- 校验码:根据前17位数字计算得到。
如何识别真伪
要判断一个咸阳身份证号码的真伪,可以采取以下步骤:
- 核对行政区划代码:确认前6位是否为6104。
- 验证出生日期码:使用身份证号码转换工具或手动计算,确认出生日期码是否与实际出生日期相符。
- 计算校验码:使用身份证号码转换工具或手动计算,确认校验码是否正确。
以下是一个示例代码,用于验证身份证号码的真伪:
def is_valid_id_card(id_card):
"""
验证身份证号码是否合法
:param id_card: 身份证号码
:return: 是否合法
"""
if len(id_card) != 18:
return False
area_code = id_card[:6]
birth_code = id_card[6:14]
order_code = id_card[14:17]
check_code = id_card[17]
# 核对行政区划代码
if area_code != '610400':
return False
# 验证出生日期码
try:
birth_year = int(birth_code[:4])
birth_month = int(birth_code[4:6])
birth_day = int(birth_code[6:8])
if (birth_year < 1900 or birth_year > 2023) or (birth_month < 1 or birth_month > 12) or (birth_day < 1 or birth_day > 31):
return False
except ValueError:
return False
# 计算校验码
weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
check_code_list = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
sum_of_weights = sum(int(num) * weight for num, weight in zip(id_card[:-1], weights))
calculated_check_code = check_code_list[sum_of_weights % 11]
return check_code == calculated_check_code
# 测试
id_card = '610421199001011234'
print(is_valid_id_card(id_card))
如何识别地区信息
通过分析咸阳身份证号码的前6位行政区划代码,可以轻松识别出身份证持有人的户籍所在地。以下是一个示例:
- 身份证号码:610421199001011234
- 户籍所在地:陕西省咸阳市秦都区
通过以上方法,你可以轻松识别咸阳身份证号码的真伪及地区信息。希望本文对你有所帮助!
