一、身份证第18位(校验码)的计算方法 :
 1、将前面的身份证号码17位数分别乘以不同的系数。
从第一位到第十七位的系数分别为:
7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。 
 2、将这17位数字和系数相乘的结果相加。 
 3、用加出来和除以11,看余数是多少? 
 4、余数只可能有
0-1-2-3-4-5-6-7-8-9-10这11个数字。
其分别对应的最后一位身份证的号码为
1-0-X-9-8-7-6-5-4-3-2。

5、通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2。 
例如:某男性的身份证号码是34052419800101001X。我们要看看这个身份证是不是合法的身份证。 
首先我们得出前17位的乘积和是189,然后用189除以11得出的结果是17+2/11,也就是说其余数是2。最后通过对应规则就可以知道余数2对应的数字是x。所以,可以判定这是一个合格的身份证号码

package cn.java.example;public class TestCard {private static int[] w = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};private static String id = "34052419800101001X";public static void main(String[] args) {System.out.println(isCard(id));}public static boolean isCard(String id){char[] c=id.toCharArray();int sum=0;for (int i = 0; i < w.length; i++) {sum+=(c[i]-'0')*w[i];}System.out.println(sum);char[] verifyCode="10X98765432".toCharArray();char ch =verifyCode[sum%11];System.out.println(ch);return c[17]==ch;}}

java代码实现身份证第18位的计算和验证身份证号码是否是真实有效.相关推荐

  1. java身份证工具类(校验身份证是否合法、通过身份证获取年龄、性别、生日,将15位身份证转为18位等)

    一.简介 因为工作需要经常用到身份证做一些相关操作,于是通过查阅资料总结出一些常用的工具方法,包括校验身份证是否合法.通过身份证获取年龄.通过身份证获取性别.通过身份证获取户籍地址.通过身份证获取生日 ...

  2. 居民身份证号码的奥秘及身份证第18位(校验码)的计算方法

    2019独角兽企业重金招聘Python工程师标准>>> 居民身份证是国家法定的证明公民个人身份的证件.为了堵塞和制止假居民身份证的流通和使用,在查验和核查居民身份证时可掌握以下几个要 ...

  3. mysql 怎么用SQL语句将老身份证号15位补位到新身份证号18位

    一.15位的身份证和18位的身份证的区别是什么? 只有15位号码的就是第一代身份证,而18位号码的则是第二代身份证.15位的身份证和18位的身份证的区别是:第二代身份证比第一代身份证增加了出生年份中的 ...

  4. Python计算身份证第18位(校验码)来判断身份证是否输入正确

    Python计算身份证第18位(校验码)来判断身份证是否输入正确 前言 身份证编码规则如下:根据[中华人民共和国国家标准GB11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由 ...

  5. java 身份证第18位数字的算法

    原来在注册一个网站的时候,发现输入身份证会被验证出来. 即使前面的全正确,但是如果最后一位不正确的话,也会被验证出来的. 原来在身份证的号码,是有规则的.特别是最后一位. 下面是18位身份证最后一位的 ...

  6. 身份证第18位(校验码)的计算方法

    1.将前面的身份证号码17位数分别乘以不同的系数.从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2. 2.将这17位数字和系数相乘的结果相加. 3 ...

  7. 身份证号第18位的计算

    身份证号每一位号码的意义 首选需要声明两点, 第18位为x:其实对应与编码系统中的10(十),因为进制的关系了: 第18位的取值是前面17位通过一定的编码规则(ISO 7064:1983.MOD 11 ...

  8. MySQL正则表达式判断身份证_15/18位身份证号码验证的正则表达式总结(详细版)...

    前言 开发过程中,常常需要对一些输入信息进行有效性验证,使用正则表达式进行校验是最简单.效率最高的方式了,下面就来看看15/18位身份证号码验证的正则表达式吧. 介绍 xxxxxx yyyy MM d ...

  9. python正则表达式 身份证_15/18位身份证号码验证的正则表达式总结(详细版)

    前言 开发过程中,常常需要对一些输入信息进行有效性验证,使用正则表达式进行校验是最简单.效率最高的方式了,下面就来看看15/18位身份证号码验证的正则表达式吧. 介绍 xxxxxx yyyy MM d ...

最新文章

  1. webpack 单页面应用实战
  2. tar压缩解压命令详解
  3. eclipse配置代码提示
  4. C语言逆序字符串(递归实现)
  5. 计算机投诉信英语作文,投诉信A Letter of Complaint
  6. 匿名提问:rm -rf了怎么办?
  7. 操作系统分区分配java算法_合肥工业大学操作系统课程设计 动态分区分配存储管理java版.doc...
  8. Ipython Notebook ipynb文件转化为Python脚本
  9. 秘籍和修改器之人偶遗迹 ひとがたルイン
  10. 数学期望一-指数分布的数学期望
  11. Docker基础之containerd的shim
  12. requests---timeout请求超时
  13. Vine已死,秒拍抱团崛起,同是视频社交差距在哪?
  14. 海底光缆是如何铺设出来的?
  15. php北京平均工资,2016年北京平均工资是多少?
  16. 琼斯是计算体心立方弹性模量_固体物体第三章习题
  17. Java 知识结构图
  18. 香槟分校计算机研究生专业,伊利诺伊大学香槟分校研究生计算机系统专业排名...
  19. 基于java的网上水果销售管理系统
  20. Java开发环境:Win10安装最新版eclipse与jdk(超详细)

热门文章

  1. 一笔一划教你写一签名
  2. 数分练习-淘宝用户行为
  3. Win11快捷复制粘贴不能用怎么办?Win11快捷复制粘贴不能用
  4. jQueryUI皮肤下载、jQgrid中更换皮肤
  5. 数字 阅读与创造——读戴德金之三
  6. 【Python】zip 函数
  7. codeforces1395D 贪心
  8. 支付宝摇一摇红包脚本【Auto.js】
  9. Youtube Data API使用简介
  10. 一个屌丝程序猿的人生(九十四)