为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

身份证算法含源代码

2017-12-25 3页 doc 15KB 10阅读

用户头像

is_842972

暂无简介

举报
身份证算法含源代码身份证算法含源代码 ABCDEFYYYYMMDDXXXR1. 地址码(ABCDEF):表示编码对象常住户口所在 县市、旗、区的行政区划代码,按GB/T2260 的规定执行。2. 出生日期码 (YYYYMMDD) :表示编码对象出生的年、月、日,按 GB/T7408 的规定执行, 年、 月、日分别用 4 位、2 位(不足两位加 0)、2(同上)位数字表示,之间不 用分隔符。3. 顺序码(XXX) :表示在同一地址码所标识的区域范围内对同年、 同月、同日出生的人编定的顺 序号,顺序码的奇数分配给男性,偶数分配给女性。 4(校验码...
身份证算法含源代码
身份证算法含源代码 ABCDEFYYYYMMDDXXXR1. 地址码(ABCDEF):表示编码对象常住户口所在 县市、旗、区的行政区划代码,按GB/T2260 的规定执行。2. 出生日期码 (YYYYMMDD) :表示编码对象出生的年、月、日,按 GB/T7408 的规定执行, 年、 月、日分别用 4 位、2 位(不足两位加 0)、2(同上)位数字表示,之间不 用分隔符。3. 顺序码(XXX) :表示在同一地址码所标识的区域范围内对同年、 同月、同日出生的人编定的顺 序号,顺序码的奇数分配给男性,偶数分配给女性。 4(校验码(R) :一位数字,通过前 17 位数字按照 ISO 7064:1983.MOD 11-2 校 验码计算得 ( 出。 15 位的身份证编码首先把出生年扩展为 4 位,简单的就是增 加一个 19,但是这对于1900 年出 生的人不使用(这样的寿星不多了)function isCardIDsIdvar aCity11:北京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:国外 var iSum0 var info if/d17dx/i.testsId return false// 你输入的身份证长度或格式错误 sIdsId.replace/x/ia ifaCityparseIntsId.substr02null return false //你的身份证地区非法 sBirthdaysId.substr64-NumbersId.substr102-NumbersId.substr122 var dnew DatesBirthday.replace/-/g/ ifsBirthdayd.getFullYear- d.getMonth1 - d.getDatereturn false //身份证上的出生日期非法 forvar i 17i0i -- iSum Math.pow2i 11 parseIntsId.charAt17 - i11 ifiSum111 return false //你输入的身份证号非法 return :女验证身份证 校验的计算true//aCityparseIntsId.substr02sBirthdaysId.substr1612 男 方式: 1. 对前 17 位数字本体码加权求和 公式为:S SumAi Wi i 0 ... 16 其 中 Ai 表示第 i 位置上的身份证号码数值,Wi 表示第 i 位置上的加权因子其各位 对应的值依次为: 7 9 10 5 8 4 2 1 63 7 9 10 5 8 4 2 2. 以 11 对计算结果取模 Y modS 11 3. 根据模的值得到对应的校验码 对应关系为: Y 值: 0 1 2 3 4 5 6 7 8 9 10 校验码: 1 0 X 9 8 7 6 5 4 3 2 好象很复杂但具体的说也很简单.便是: 1.将前面的 身份证号码 17 位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 105842 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.验证身份证代码:import java.util.HashMapimport java.util.Mapimport java.util.Scannerimport java.util.Setimport java.util.regex.Matcherimport java.util.regex.Patternpublic class PortPersional public static void mainString args Boolean isPortfalse String snew String7 System.out.println 请输入你的身份证号码 String portnew ScannerSystem.in.nextLine Map mnew HashMap m.put35 福建 m.put34 安徽 m.put36 江西 m.put15 内蒙古 m.put37 山 东 m.put21 辽宁 m.put41 河南 m.put22 吉林 m.put42 湖北 m.put23 黑龙江 m.put12 天津 m.put31 上海 m.put14 山西 m.put32 江苏 m.put33 浙江 m.put11北 京 m.put52贵州 m.put53云南 m.put43 湖南 m.put44 广东 m.put45 广西 m.put46 海南 m.put50 重庆 m.put51四川 m.put54 西藏 m.put61陕西 m.put62甘肃 m.put63 青海 m.put64 宁夏 m.put65 新疆 m.put71 台湾 m.put81 香港 m.put82 澳门 m.put91国外 PatternpPattern.compiled2d4d4d2d2d3dX Matcher mtp.matcherport ifmt.find forint i1i
/
本文档为【身份证算法含源代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索