身份证工具 - IdcardUtil

由来

中国身份证号码包含丰富的信息(地区、出生日期、性别),并且有严格的校验规则。IdcardUtil 提供身份证号码的校验和信息提取。

方法

from hutool import IdcardUtil

idcard = "110101199001011234"

# 校验
IdcardUtil.is_valid_idcard(idcard)    # True/False
IdcardUtil.is_valid_card18(idcard)    # 18位身份证校验
IdcardUtil.is_valid_card15(idcard)    # 15位身份证校验

# 提取信息
IdcardUtil.get_birth(idcard)          # "19900101"
IdcardUtil.get_age(idcard)            # 34(当前年份 - 出生年份)
IdcardUtil.get_gender(idcard)         # "M" 或 "F"
IdcardUtil.get_province(idcard)       # "北京"

# 转换
IdcardUtil.convert15to18("110101900101123")  # 转为18位

# 脱敏
IdcardUtil.hide(idcard)               # "110101****1234"

# 提取出生年/月/日
IdcardUtil.get_year_by_id_card(idcard)   # 1990
IdcardUtil.get_month_by_id_card(idcard)  # 1
IdcardUtil.get_day_by_id_card(idcard)    # 1

身份证号码结构

18位身份证号码结构:

位置

含义

1-6

地区码

7-14

出生日期(yyyyMMdd)

15-17

顺序码(奇数为男性,偶数为女性)

18

校验码