模拟生成身份信息及查验身份python123
时间: 2023-12-09 22:04:50 浏览: 94
好的,我可以为您提供一些关于生成和验证身份信息的Python代码。
生成身份信息:
```
import random
# 生成随机的18位身份证号
def generate_id_number():
# 生成前17位数字
id_number = str(random.randint(110000, 659000))
for i in range(2):
id_number += str(random.randint(10, 99))
# 计算最后一位校验码
id_array = list(map(int, id_number))
check_code = (12 - (id_array[0]*7 + id_array[1]*9 + id_array[2]*10 + id_array[3]*5 + id_array[4]*8 + id_array[5]*4 + id_array[6]*2 + id_array[7]*1 + id_array[8]*6 + id_array[9]*3 + id_array[10]*7 + id_array[11]*9 + id_array[12]*10 + id_array[13]*5 + id_array[14]*8 + id_array[15]*4 + id_array[16]*2) % 11) % 10
id_number += str(check_code)
return id_number
```
验证身份信息:
```
# 判断身份证号码是否合法
def is_valid_id_number(id_number):
if not id_number.isdigit() or len(id_number) != 18:
return False
# 计算最后一位校验码
id_array = list(map(int, id_number[:-1]))
check_code = (12 - (id_array[0]*7 + id_array[1]*9 + id_array[2]*10 + id_array[3]*5 + id_array[4]*8 + id_array[5]*4 + id_array[6]*2 + id_array[7]*1 + id_array[8]*6 + id_array[9]*3 + id_array[10]*7 + id_array[11]*9 + id_array[12]*10 + id_array[13]*5 + id_array[14]*8 + id_array[15]*4 + id_array[16]*2) % 11) % 10
if str(check_code) != id_number[-1]:
return False
return True
```
这些代码可以生成随机的18位身份证号并验证身份证号的合法性。但请注意,这些身份证号是随机生成的,不代表真实的身份证号码。在实际使用时,需要谨慎处理个人信息。