身份证啥的

我國自1999年實施公民身份號碼制度以來,許多公民身份號碼末位為“X”的公民,由於不明白“X”的含義,要求給予更換,產生了不必要的誤會。

目前我國公民身份證號碼由18字节組成:前6字节為地址碼,第7至14字节為出生日期碼,第15至17比特為順序碼,第18比特為校驗碼。檢驗碼分別是“0、1、2、……10”共11個數位,當檢驗碼為“10”時,為了保證公民身份證號碼18比特,所以用“X”表示。雖然校驗碼為“X”不能更換,但若需全用數位表示,只需將18比特公民身份號碼轉換成15比特居民身份證號碼,去掉第7至8比特和最後1比特3個数位。
當今的身份證號碼有15比特和18比特之分。1985年我國實行居民身份證制度,當時簽發的身份證號碼是15比特的,1999年簽發的身份證由於年份的擴展(由兩位變為四比特)和末尾加了效驗碼,就成了18比特。這兩種身份證號碼將在相當長的一段時期內共存。
中國大陸新身份證號碼算灋
1、號碼的結構
公民身份號碼是特徵組合碼,由十七位數字本體碼和一比特校驗碼組成。排列順序從左至右依次為:六比特數位地址碼,八位數位出生日期碼,三比特數位順序碼和一比特數位校驗碼。
2、地址碼
表示編碼對象常住戶口所在縣(市、旗、區)的行政區劃代碼,按GB/T2260的規定執行。

(所有區域的編碼可以到這個網站http://www.stats.gov.cn/tjbz/index.htm査詢到最新的縣及縣以上的行政編碼資料。)
3、出生日期碼
表示編碼對象出生的年、月、日,按GB/T7408的規定執行,年、月、日程式碼之間不用分隔符號。
4、順序碼
表示在同一地址碼所標識的區域範圍內,對同年、同月、同日出生的人編定的順序號,順序碼的奇數分配給男性,偶數分配給女性。
5、校驗碼
第十八比特數位的計算方法為:
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。
例如:某男性的身份證號碼是101010101010101010。我們要看看這個身份證是不是合法的身份證。
首先:我們得出,前17比特的乘積和是5
然後:用5除以11得出的結果是5。
最後:通過對應規則就可以知道餘數5對應的數位是7。所以,這是一個非法的身份證號碼,按說我們通過生日一眼就可以看出是假的。
所以用前17比特組成的正確ID應該是101010101010101017。

时间: 2024-10-06 06:35:08

身份证啥的的相关文章

Android身份证识别是什么

Android身份证识别应用背景 随着智能终端(智能手机及平板电脑)及移动通信(4G)的发展,人们用手机的概率比用电脑的多,可以预见未来几年60%以上的业务将会逐渐转移到智能终端系统上来.如今手机APP的应用火爆,例如查吃的住的出行的订票的O2O模式,网上支付,移动金融,移动线上订货线下配送等等等,我司也研发出Android身份证识别的应用,让需要实名制的应用更加方便,快捷,提高用户体验,为人们解决繁琐输入的问题. 原来运行在PC上的信息系统(如邮件系统.即时通信.网页浏览.协同办公.网络购物.

javascript验证身份证

身份证规则 根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成. 1.将前面的身份证号码17位数分别乘以不同的系数.身份证号码第i位对应的系数为[2^(18-i)] mod 11(此处^代表指数运算). 2.将这17位数字和系数相乘的结果相加 3.用加出来和除以11,得出余数y. 4.校验码为(12 - y) mod 11 若此结果为10,则以小写字母x代替. 问题分析 依据身份证号码规则,可以初步

java实现身份证归属地查询

采用的是聚合网站的接口.json解析用的Gson库.下载地址:http://download.csdn.net/detail/bjq1016/8225447 两个JavaBean: package com.itfanr.IDCard; /**  * Created by itfanr on 14/12/4.  */ public class ResultInfo {     private int resultcode ;     private  String reason ;     pub

基于Tesseract的身份证识别Android端应用

以开源的Tesseract为基础,做了一个身份证识别的app. 图片资源是百度找的,而且手机对着电脑屏幕拍照,拍出很多花纹,影响比较大,所以误差不小,实测对着自己身份证拍照会好很多. 效果图: 1.拍摄 2.识别 思路:程序切割身份证,然后分别调用Tesseract识别: 1.身份证 2.姓名 3.住址 4.身份证号: 源码在我的Github项目里面:

*RC523读身份证ID

最近用RC523读身份证ID,经过几天摸索和参考网上资料,终于所成功了,特发此贴给有需要的朋友,但愿能少走弯路 RC523 寄存器配置:        RcSetReg(JREG_TXASK, 0x00);         RcSetReg(JREG_CONTROL, 0x10);         RcSetReg(JREG_TXMODE, 0x03);         RcSetReg(JREG_RXMODE, 0x0B);         RcSetReg(JREG_TYPEB, 0x03)

算法提高 身份证号码升级

问题描述 从1999年10月1日开始,公民身份证号码由15位数字增至18位.(18位身份证号码简介).升级方法为: 1.把15位身份证号码中的年份由2位(7,8位)改为四位. 2.最后添加一位验证码.验证码的计算方案: 将前 17 位分别乘以对应系数 (7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2) 并相加,然后除以 11 取余数,0-10 分别对应 1 0 x 9 8 7 6 5 4 3 2. 请编写一个程序,用户输入15位身份证号码,程序生成18位身份证号码.假设所

L1-016. 查验身份证

一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}:然后将计算的和对11取模得到值Z:最后按照以下关系对应Z值与校验码M的值: Z:0 1 2 3 4 5 6 7 8 9 10M:1 0 X 9 8 7 6 5 4 3 2 现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码. 输入格式: 输入第一行给出正整数N(<= 100

怎么在一堆身份证中筛选出大于18岁的?

最近一朋友找我帮个忙,让我在N多身份证中找到18岁以上的人.我还想着用SQL查询来弄,谁让是干IT的呢,没想到被我一个朋友用excel瞬间解决....学习新的东西是多么的重要啊. 其实就是利用了excel中的MID函数.例子:MID(x,y,z):  MID函数可以截取表中的字符段,有三个参数,依次表示为获取哪一格数.从第几个字符开始.截取几位.例如MID(A1,7,4)表示截取A1格内从第7个开始长度为4的字符串.说道这里,上面的问题就迎刃而解.要算大于18岁的,肯定是获取身份证号码中的年份才

Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳

早期的身份证号码为15位数字,现在使用的身份证号码为18位数字,它们的含义如下:(1)15位:1-6位为地区代码,7-8位为出生年份(2位),9-10位为出生月份,11-12位为出生日期,第13-15位为顺序号,这3位奇数为男,偶数为女.(2)18位:1-6位为地区代码,7-10位为出生年份(4位),11-12位为出生月份,13-14位为出生日期,第15-17位为顺序号,同上,第18位为效验位. 在工作时,有时希望通过身份证号码,自动提取出出生日期.性别.年龄等信息.现在我们就通过几个公式,来得

JavaScript 身份证号有效验证详解及实例代码

JavaScript 身份证号有效验证详解及实例代码 这篇文章主要介绍了JavaScript 身份证号有效验证详解及实例代码的相关资料,需要的朋友可以参考下 JavaScript验证身份证号 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 37 38 39 40 41 42 43 44 45 46 <%@ page language="jav