我国大陆居民身份证Java验证

简介:

关于身份证验证这一点做到身份证的编码有效性,只有是否真实存在,就算有国家居民身份证数据库也不见的真的符合事实,毕竟一人多证,或者有人无证的基本现象是存在的。

做项目中有用到用户身份证验证,那么尽最大努力使用户输入的身份证接近事实,当然只是接近。如果要真极度达到身份证确实真是有效,使用国家居民身份证数据库或者银行卡办卡身份证证件等。


接下来用一段Java代码来实现没有数据库服务提供的时候做身份证验证的示例。

关于我国(中国)大陆居民身份证编码格式和意义参见百度百科(身份证):

http://baike.baidu.com/link?url=tu-0tuMiWOmakcmpFIDHezquZrfc75oPBKS_8g7hD7wiKYfVaV-yxow93fwbiqyE

验证身份证我们要验证那些内容呢?

以1999年7月1日生效的GB11643-1999《公民身份号码》规范为例,18为居民身份证号码。

1.验证身份证号码前6为,省市区县编码

2.验证身份证号码第7-14位,出生年月日,格式yyyyMMdd,注意(以当日为日期截至线,一个身份证的生日还没到,肯定是不中的喽)

3.验证身份证号码第15-17位,出生序列号(补充一点点,就是同一地区同天出生的孩子的编号,男孩的奇数,女孩偶数,号码从小到大排序,老年人预留号码从999往下递减)

4.验证身份证号码第18位,即校验位,1-17位通过一定的算法计算而来值对象的检验位值


验证并不复杂就是考虑周全就行了,下面是Java实现的代码,如果使用JavaScript做前端验证,可以按Java实现的方式很容易的DIY一份JavaScript的实现.


身份证验证类:

215600857.png

215600573.png

215601830.png

215601701.png

215601888.png

215601789.png

215601851.png

215602733.png

215602359.png

215602473.png

215602199.png

下面是省市县区编码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
相关文章
|
2月前
|
存储 canal 算法
[Java·算法·简单] LeetCode 125. 验证回文串 详细解读
[Java·算法·简单] LeetCode 125. 验证回文串 详细解读
27 0
|
7月前
|
SQL 关系型数据库 MySQL
Java 最常见的面试题:怎么验证 mysql 的索引是否满足需求?
Java 最常见的面试题:怎么验证 mysql 的索引是否满足需求?
|
2月前
|
JavaScript Java
java生成验证码并进行验证
java生成验证码并进行验证
29 2
|
24天前
|
Oracle Java 关系型数据库
Java 开发者必备:JDK 版本详解与选择策略(含安装与验证)
Oracle Java SE 支持路线图显示,JDK 8(LTS)支持至2030年,非LTS版本如9-11每6个月发布且支持有限。JDK 11(LTS)支持至2032年,而JDK 17及以上版本现在提供免费商用许可。LTS版本提供长达8年的支持,每2年发布一次。Oracle JDK与OpenJDK有多个社区和公司构建版本,如Adoptium、Amazon Corretto和Azul Zulu,它们在许可证、商业支持和更新方面有所不同。个人选择JDK时,可考虑稳定性、LTS、第三方兼容性和提供商支持。
74 0
|
3月前
|
canal Java
java字符串练习题7、验证回文串
java字符串练习题7、验证回文串
39 0
|
4月前
|
算法 C++ Java
Java每日一练(20230504) 位1的个数、移除元素、验证二叉搜索树
Java每日一练(20230504) 位1的个数、移除元素、验证二叉搜索树
24 0
Java每日一练(20230504) 位1的个数、移除元素、验证二叉搜索树
|
9月前
|
索引
java202303java学习笔记第四十三天函数-性能分析-验证索引效率1
java202303java学习笔记第四十三天函数-性能分析-验证索引效率1
33 0
|
10月前
|
存储 算法 Java
Java实现AWS S3 V4 Authorization自定义验证
最近在开发文件存储服务,需要符合s3的协议标准,可以直接接入aws-sdk,本文针对sdk发出请求的鉴权信息进行重新组合再签名验证有效性,sdk版本如下
113 0
|
5月前
|
存储 安全 Java
Trembling ! Java类的加载过程详解(加载验证准备解析初始化使用卸载)
Trembling ! Java类的加载过程详解(加载验证准备解析初始化使用卸载)
36 0
|
5月前
|
Java
98. 验证二叉搜索树 --力扣 --JAVA
给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 -2^31 <= Node.val <= 2^31 - 1
29 0
98. 验证二叉搜索树 --力扣 --JAVA