iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java如何实现身份证号码验证
  • 923
分享到

Java如何实现身份证号码验证

java 2023-05-31 00:05:28 923人浏览 安东尼
摘要

小编给大家分享一下Java如何实现身份证号码验证,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:package xxx;import 

小编给大家分享一下Java如何实现身份证号码验证,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

具体如下:

package xxx;import java.text.ParseException;import java.text.SimpleDateFORMat;import java.util.Calendar;import java.util.Date;import java.util.Random;public class IDCardUtil{    final static String CITY_CODE[] = {"11", "12", "13", "14", "15", "21", "22", "23", "31", "32", "33", "34", "35", "36", "37", "41", "42", "43", "44", "45", "46", "50", "51", "52", "53", "54", "61", "62", "63", "64", "65", "71", "81", "82", "91"};    final static char[] PARITYBIT = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};    final static int[] POWER = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};    public final static boolean isValid(String id)  {    if (id == null)      return false;    int len = id.length();    if (len != 15 && len != 18)      return false;    //校验区位码    if (!validCityCode(id.substring(0, 2)))      return false;    //校验生日    if (!validDate(id))      return false;    if (len == 15)      return true;    //校验位数    return validParityBit(id);  }  private static boolean validParityBit(String id)  {    char[] cs = id.toUpperCase().toCharArray();    int power = 0;    for (int i = 0; i < cs.length; i++)    {      //最后一位可以是X      if (i == cs.length - 1 && cs[i] == 'X')        break;      // 非数字      if (cs[i] < '0' || cs[i] > '9')        return false;      // 加权求和      if (i < cs.length - 1)      {        power += (cs[i] - '0') * POWER[i];      }    }    return PARITYBIT[power % 11] == cs[cs.length - 1];  }  private static boolean validDate(String id)  {    try    {      String birth = id.length() == 15 ? "19" + id.substring(6, 12) : id.substring(6, 14);      SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");      Date birthDate = sdf.parse(birth);      if (!birth.equals(sdf.format(birthDate)))        return false;    }    catch (ParseException e)    {      return false;    }    return true;  }  private static boolean validCityCode(String cityCode)  {    for (String code : CITY_CODE)    {      if (code.equals(cityCode))        return true;    }    return false;  }    final public static String id15To18(String id)  {    if (id == null || id.length() != 15)      return null;    if (!isValid(id))      return null;    String id17 = id.substring(0, 6) + "19" + id.substring(6);    int power = 0;    char[] cs = id17.toCharArray();    for (int i = 0; i < cs.length; i++)    {      power += (cs[i] - '0') * POWER[i];    }    // 将前17位与第18位校验码拼接    return id17 + String.valueOf(PARITYBIT[power % 11]);  }    public static int rand(int min, int max)  {    Random random = new Random();    return random.nextInt(max + 1) % (max - min + 1) + min;  }  public final static String generateID()  {    // 地址码    String body = CITY_CODE[rand(0, CITY_CODE.length - 1)] + "0101";    // 出生年    String y = String.valueOf(rand(1950, Calendar.getInstance().get(Calendar.YEAR)));    String m = String.valueOf(rand(1, 12));    if (m.length() == 1)      m = "0" + m;    String d = String.valueOf(rand(1, 28));    if (d.length() == 1)      d = "0" + d;    String idx = String.valueOf(rand(1, 999));    if (idx.length() == 1)      idx = "00" + idx;    else if (idx.length() == 2)      idx = "0" + idx;    body += y + m + d + idx;    // 累加body部分与位置加权的积    int power = 0;    char[] cs = body.toCharArray();    for (int i = 0; i < cs.length; i++)    {      power += (cs[i] - '0') * POWER[i];    }    // 得出校验码    return body + String.valueOf(PARITYBIT[power % 11]);  }}

以上是“Java如何实现身份证号码验证”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: Java如何实现身份证号码验证

本文链接: https://www.lsjlt.com/news/222323.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java如何实现身份证号码验证
    小编给大家分享一下Java如何实现身份证号码验证,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:package xxx;import ...
    99+
    2023-05-31
    java
  • Js如何实现中国公民身份证号码有效性验证
    小编给大家分享一下Js如何实现中国公民身份证号码有效性验证,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!本文将使用JavaScr...
    99+
    2022-10-19
  • jquery如何校验中国身份证号码
    这篇文章主要介绍jquery如何校验中国身份证号码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!jquery 校验中国身份证号码实例详解大陆18位身份证(第二代身份证)身份号码是一组...
    99+
    2022-10-19
  • Java JWT如何实现跨域身份验证
    今天小编给大家分享一下Java JWT如何实现跨域身份验证的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、JWT...
    99+
    2023-06-26
  • JS如何实现中国公民身份证号码有效性验证功能
    小编给大家分享一下JS如何实现中国公民身份证号码有效性验证功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!可直接复制粘贴运行 带生成身份证号码功能<!DOCTYPE ht...
    99+
    2022-10-19
  • Java身份证验证方法实例详解
    Java身份证验证方法实例详解身份证号码验证 1、号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,      八位数字出生日...
    99+
    2023-05-31
    java 身份证 验证
  • C#实现身份证验证功能的示例代码
    目录实践过程效果代码实践过程 效果 代码 public partial class Form1 : Form { public Form1() { ...
    99+
    2022-12-20
    C#身份证验证 C# 验证 C#身份证
  • Django中如何实现JWT身份验证
    这篇文章主要介绍Django中如何实现JWT身份验证,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.认证与授权验证:身份验证是验证个人或设备标识的过程。身份验证过程之一是登录过程。注册网站后,您的信息(ID,密码,...
    99+
    2023-06-14
  • 利用Java怎么实现一个验证身份证功能
    这期内容当中小编将会给大家带来有关利用Java怎么实现一个验证身份证功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。具体如下:package org.cxy.csdn.example;import ja...
    99+
    2023-05-31
    java ava
  • node.js实现token身份验证的示例代码
    安装依赖 express-jwt npm i express-jwt 将token校验相关数据导入配置文件 // setting.js module.exports = {     ...
    99+
    2022-11-13
  • java 根据身份证号码判断性别
    在Java中,您可以根据身份证号码的规则来判断性别。中国的身份证号码通常采用的是以下规则: 第17位数字代表性别,奇数表示男性,偶数表示女性。 通常,男性的出生日期的第15、16位数字是01,女性是02。 请注意,这只是一个大致的规则...
    99+
    2023-10-03
    java 开发语言
  • php如何实现身份证号替换为星号
    本篇内容主要讲解“php如何实现身份证号替换为星号”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php如何实现身份证号替换为星号”吧!在php中,可以使用substr_replace()函数将将...
    99+
    2023-06-25
  • 如何使用会话Cookie和Java实现JWT身份验证
    目录1、基于会话的身份验证那么什么是会话Cookie? 2、基于令牌的身份验证哪个更好用?3、jwt实现登录HTTP是无状态协议,用于传输数据。它启用了客户端和服务器端>...
    99+
    2022-11-11
  • 如何用sql实现18位身份证校验
    本篇文章为大家展示了如何用sql实现18位身份证校验,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。身份证校验码的计算方法1、将前面的身份证号码17位数分别乘以不同的...
    99+
    2022-10-19
  • node如何实现基于token的身份验证
    小编给大家分享一下node如何实现基于token的身份验证,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!最近研究了下基于toke...
    99+
    2022-10-19
  • JS如何实现身份证信息验证正则表达式
    小编给大家分享一下JS如何实现身份证信息验证正则表达式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!很多时候我们都是通过一组正则...
    99+
    2022-10-19
  • JS正则表达式详解及身份证号码验证(简易版)
    目录JS正则表达式 匹配与搜索一、方括号,圆括号二、修饰符三、元字符四、量词身份证号码验证(简易版)身份证号码规则:1.地址码2.年份码3.月份码4.日期码5.顺序码6.校验码7.身...
    99+
    2022-11-13
  • Java JWT实现跨域身份验证方法详解
    目录1、JWT简介2、JWT的结构2.1 头部(header)2.2 载荷(payload)2.3 签证(signature)3、JWT的原则4、JWT的用法5、JWT的问题和趋势6...
    99+
    2022-11-12
  • Excel如何显示身份证号
    在Excel中,你可以使用以下方法来显示身份证号:1. 默认格式显示:在单元格中直接输入身份证号码,Excel会自动按照默认格式进行...
    99+
    2023-10-07
    Excel
  • PHP如何判断身份证号
    这篇文章将为大家详细讲解有关PHP如何判断身份证号,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。身份证号function is_citizen_id($id) {  ...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作