python123模拟生成身份信息及查验身份
时间: 2023-12-09 16:04:50 浏览: 115
好的,我可以为你介绍一下如何使用 Python 生成身份信息和查验身份。
生成身份信息可以使用 Python 的随机数生成模块 random 和 faker,faker 可以生成各种不同国家的身份信息。下面是示例代码:
```python
from faker import Faker
import random
fake = Faker('zh_CN')
def generate_id():
# 生成身份证号
id_num = fake.ssn(min_age=18, max_age=70)
# 生成性别
gender_code = int(id_num[-2])
gender = '男' if gender_code % 2 == 1 else '女'
# 生成出生日期
birth_year = id_num[6:10]
birth_month = id_num[10:12]
birth_day = id_num[12:14]
birth_date = f"{birth_year}-{birth_month}-{birth_day}"
# 生成所在地区
location = fake.city_name()
return {'id_num': id_num, 'gender': gender, 'birth_date': birth_date, 'location': location}
if __name__ == '__main__':
person = generate_id()
print(person)
```
查验身份证号需要用到身份证号的校验算法。下面是一个简单的实现:
```python
def validate_id(id_num):
# 校验身份证号
if len(id_num) != 18:
return False
factors = [int(x) for x in id_num[:-1]]
weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
check_digit = '10X98765432'[sum(factors[i] * weights[i] for i in range(17)) % 11]
return id_num[-1] == check_digit
if __name__ == '__main__':
id_num = '11010119900307771X'
print(validate_id(id_num))
```
注意,这里实现的校验算法只是一个简单的示例,实际应用中需要使用更严格的算法来确保身份证号的正确性。同时,使用生成的身份信息时也需要遵守相关法律法规,不能用于非法用途。