如何封装PHP校验15位和18位身份证号的类?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1753个文字,预计阅读时间需要8分钟。
新公司框架源码近期发现新功能,能搜索一串并封装身份验证标识。目前,大部分身份证号码是18位的,但也包括少数15位的老人身份证。
新公司框架源码的时候,发现了这个功能,于是搜索一番并封装了一下身份证号校验的类。
目前大家的身份证号大多是 18 位的,当然,也不排除有些老人的身份证号是 15 位的。
如果强制要求是 18 位的话,会比较好,因为 15 位的身份证号没有校验码,可以说,只要了解大概结构,随手都可以造出一系列身份证号码来。
当然,如果只是单纯的程序校验, 18 位的身份证号码也可以伪造,就是需要伪造者花点心思。
最好的还是调用相关部门给的接口,进行校验。
本文所编写的身份证号码校验,只是针对相关规则下的计算,是调用接口前能做的事情。
身份证号规则
15位:省份(2位) + 地级市(2位) + 县级市(2位) + 出生年(2位) + 出生月(2位) + 出生日(2位) + 顺序号(3位)
18位:省份(2位) + 地级市(2位) + 县级市(2位) + 出生年(4位) + 出生月(2位) + 出生日(2位) + 顺序号(3位) + 校验位(1位)
相比之下, 18位 比 15位 多出生年 2位 、校验位 1位 。
其中,顺序号如果是偶数,则说明是女生,顺序号是奇数,则说明是男生。
本文共计1753个文字,预计阅读时间需要8分钟。
新公司框架源码近期发现新功能,能搜索一串并封装身份验证标识。目前,大部分身份证号码是18位的,但也包括少数15位的老人身份证。
新公司框架源码的时候,发现了这个功能,于是搜索一番并封装了一下身份证号校验的类。
目前大家的身份证号大多是 18 位的,当然,也不排除有些老人的身份证号是 15 位的。
如果强制要求是 18 位的话,会比较好,因为 15 位的身份证号没有校验码,可以说,只要了解大概结构,随手都可以造出一系列身份证号码来。
当然,如果只是单纯的程序校验, 18 位的身份证号码也可以伪造,就是需要伪造者花点心思。
最好的还是调用相关部门给的接口,进行校验。
本文所编写的身份证号码校验,只是针对相关规则下的计算,是调用接口前能做的事情。
身份证号规则
15位:省份(2位) + 地级市(2位) + 县级市(2位) + 出生年(2位) + 出生月(2位) + 出生日(2位) + 顺序号(3位)
18位:省份(2位) + 地级市(2位) + 县级市(2位) + 出生年(4位) + 出生月(2位) + 出生日(2位) + 顺序号(3位) + 校验位(1位)
相比之下, 18位 比 15位 多出生年 2位 、校验位 1位 。
其中,顺序号如果是偶数,则说明是女生,顺序号是奇数,则说明是男生。

