超全面详细的身份证号码编码原理,拿走不谢!

1 篇文章 0 订阅
订阅专栏

在这里插入图片描述
身份证号码是国家为每个公民从出生之日起编定的唯一的、终身不变的的代码。身份证上的号码你知道都代表什么意思吗?为什么有些人身份证号码最后一位是X?今天博主就向大家仔细的介绍一下身份号码的组成、含义以及编码的原理。相信你看完本文以后,一定会对身份号码有一个清晰、透彻的理解。

首先简要介绍一下身份号码的组成及含义。

国标GB 11643规定,全国所有公民的身份号码都是18位的特征码。所谓特征码,就是号码本身反映了公民的一些基本特征,比如籍贯、年龄、性别等。

身份号码前6位是地址码,表示公民出生时户口所在地的地址,此后不随户籍变化而改变。

紧接着的8位是出生日期码,表示公民出生的具体日期。

接下来的3位是顺序码,区县公安机关按顺序给辖区内同年同月同日出生的公民进行编码。顺序码除了起到区分同辖区内同年同月同日出生的公民,还包含了公民的性别特征,公安机关在编制顺序码时,对男性公民编制为奇数,女性为偶数。

最后一位是校验码,引入校验码的目的,是为了避免输入错误。因为身份号码本体码长达17位,这么长的数字串,在录入电脑系统时,难免输错。引入校验码以后,电脑系统就能根据预定的算法检测出录入是否有误,从而确保录入的正确性。

校验码是根据前面17位本体码数字的值,按照统一的算法计算出来的。计算出的校验结果可能为0~9,还可能为10。如果是10,就用X替代。之所以要用单字符X替代两位数的10,是为了身份号码位数的统一。统一的位数有助于系统的管理与维护。而之所以用X而不是ABC或其他字符来替代,是因为在罗马字符中X恰好就是表示序号10的意思。
该示例身份号码为随意编制,如有雷同,纯属巧合
下面分别详细介绍各组成部分的编码原理。

一、地址码
地址码表示编码对象(即公民)常住户口所在县(市、旗、区)的行政区划代码,按国标GB/T 2260的规定执行。

国标GB/T 2260规定了我国县级及县级以上行政区划的数字代码和字母代码。其中的数字代码采用三层六位的层次结构,按层次分别表示我国省(自治区、直辖市、特别行政区)、市(地区、自治州、盟)、县(自治县、县级市、旗、自治旗、市辖区、林区、特区)。

行政区划数字代码码位结构从左到右的含义是:

第一层即前两位代码表示省、自治区、直辖市、特别行政区。

按照国务院目前的划分,我国有34个省(自治区、直辖市、特别行政区),数量超过了10个所以1位数字不够用,需要采用2位数字来进行编码。

虽然国标GB/T 2260没有明确指明,但通过其具体编码可以看出:为了适应以后省级行政区划的变更,国标GB/T 2260对这34个省并不是按照顺序进行编码的,而是按照各省所在区域,又划分为华北、东北、华东、华中华南、西南、西北、台湾、香港澳门等8个大的区域,每个区域包含3~7个省级区划。用第一位表示区域码,第二位表示该区域内的省的编码。

引入区域的概念后,既保持了各省代码的相对连续,又方便了以后对省级行政区划变更的扩展。

比如重庆市以前是隶属于四川省的一个省辖市,升级为直辖市后,新的代码就从西南区域中分配(新分配到的区划代码是50)。假如以后深圳市也有机会升级为直辖市的话,就可以从华南区域分配省级区划代码(比如40或47~49)。目前各区域都预留有4~7个代码作为备用。

具体的区域编码如下图所示:(注:区域编码是博主总结的,国标里面并没有明确规定)
在这里插入图片描述
各省(自治区、直辖市、特别行政区)的编码如下图所示:(下面编码是国标规定的,不是博主胡乱编造的)
在这里插入图片描述
第二层即中间两位代码表示市、地区、自治州、盟、直辖市所辖市辖区/县汇总码、省(自治区)直辖县级行政区划汇总码,其中:

—01~20/51~70表示市,01、02还用与表示直辖市所辖市辖区/县汇总码;

—21~50表示地区、自治州、盟;

—90表示省(自治区)直辖县级行政区划汇总码。

上面这段话可能比较晦涩,参照下图来看就很好理解了。
在这里插入图片描述
第三层即后两位表示县、自治县、县级市、旗、自治旗、市辖区、林区、特区,其中:

—01~20表示市辖区、地区(自治州、盟)辖县级市、市辖特区以及省(自治区)直辖县级行政区划中的县级市,01通常表示市辖区汇总码;

—21~80表示县、自治县、旗、自治旗、林区、地区辖特区;

—81~99表示省(自治区)辖县级市。

这段话也比较晦涩,也请参照下图来理解。
在这里插入图片描述
二、出生日期码
出生日期码表示编码对象(公民)出生的年、月、日,按国标GB/T 7408的规定执行,年、月、日代码之间不用分隔符。

表示日期的方式有很多种,比如可以采用年月日的方式,也可以采用年周的方式。年月日还可以有不同的编码:20170825、2017825、8252017、2582017等都可以表示2017年8月25日。身份号码里的出生日期码则只能采用20170825这一种方式。这也是最符合我们中国人习惯的一种方式。

三、顺序码
顺序码表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。

对于顺序码,国标GB 11643只规定了其位数为三位数字,并要求奇数分配给男性,偶数分配给女性,除此之外,没有对其做进一步细化。这就给了区县级公安机关根据本区县实际情况灵活编制的权利。

从实际身份证号码来看,区县级公安局在编制顺序码时,应该是将乡镇/街道区划代码融入进了顺序码中。

国标GB/T 10114规定,县级以下行政区划指镇、乡、民族乡及街道;县级以下行政区划代码由三位数字构成,具体划分为:001~099表示街道;100~199表示镇、民族镇;200~399表示乡、民族乡、苏木(内蒙的基层行政单位)。

从上面规定可以看出,国标GB/T 10114只是对县级以下行政区划代码作了一个框架性的规定,具体的编码交由各省、自治区、直辖市标准化管理机构负责编制并作为地方标准。因此,各省的县级以下行政区划代码的编码规则不一定完全相同。

细心的读者可能会有担心,3位顺序码最多容纳1000人,如果某一区县在某一天同时有500个以上的男性或女性出生,那么第501个及其后面的人显然就分配不到合法的身份号码。

其实这个问题无需我们担心,相关部门在制定这个标准时,已经根据我国的人口现状,各区县在以往历年的出生人口统计中确知,所有区县的一天出生人口远远达不到500个之多。

四、校验码
校验码采用ISO 7064:1983,MOD 11-2校验算法对前面的地址码、出生日期码和顺序码进行校验。具体校验公式如下图所示:
在这里插入图片描述
公式中:i表示号码字符从右至左包括校验码字符在内的位置序号,ai表示第i位置上的号码字符值;wi表示第i位置上的加权因子,其数值依据公式wi=(2^(i-1))(mod 11)计算得出。根据这个公式,小编推导出了另一个公式:w1=1,wi=(2*w(i-1))(mod 11)。(其中w(i-1)是一个整体,表示上一个w,头条不支持下标输入,大家将就着看)。这两个公式是等价的,但是推导公式与更便于计算。下图是小编为大家计算出的wi在各位置上的值。
在这里插入图片描述
上面的校验公式(1)表示了什么意思呢,估计很多读者看到它直犯晕。这里解释一下,其实意思不复杂,就是:加入校验码后,身份号码所有位置(包括校验码)上的数字乘以该位置上的加权因子再求和,再对11求模,其结果要等于1。

那我们要怎么计算校验位呢?

只需将上面公式稍作变换,具体是将a1×w1从求和表达式中提取出来,因为w1=(2^(1-1))(mod 11)=1,于是我们就得到了下面的公式:
在这里插入图片描述
公式中a1就是我们要求的校验码字符值,其取值范围是0~10。当a1=10时,用罗马字符X表示。

根据上面公式(2),只要求出第2~18位的∑ai×wi ,就能换算出校验码的值。具体换算表如下图所示:
在这里插入图片描述
肯定还有不少读者要问,上面这个换算表是怎么来的?以最右边的10为例解释一下,与10相加后对11取模等于1的数有:2、13、24、35、46等等无数多个,但是在0~10范围内的就只有2;所以10换算后为2,其他的类推。其实说白了就是,二者相加后,等于11的倍数加1。

下面举例介绍校验码的详细计算方法,假设某男性公民身份号码的本体码为11010820171221591,其校验码字符值的计算方法及步骤为:

第一步,列出该身份号码的本体码,结果如下:(待计算的校验码也一并列出来)
在这里插入图片描述
第二步,依据公式wi=(2^(i-1))(mod 11)计算加权因子,结果如下:
在这里插入图片描述
第三步,计算各位置上的乘积,结果如下:
在这里插入图片描述
第四步,乘积求和:∑ai×wi=7+9+0+5+0+32+4+0+6+21+7+18+20+5+40+36+2=212。

第五步,对11取模:∑ai×wi(mod 11)=212%11=3。

第六步,求出校验码字符值,根据(3+a1)≡1(mod 11),算出a1=9。

因此,该男性公民身份号码的本体码为110108201712215919。

到这里完整的身份证编码原理就全部介绍完了。你看懂了吗?

中国居民身份证号码 编码规则 及验证方式
我的LOG
10-12 6387
中国居民身份证号码编码规则 第一、二位表示省(自治区、直辖市、特别行政区)。 第三、四位表示市(地级市、自治州、盟及国家直辖市所属市辖区和县的汇总码)。其中,01-20,51-70表示省直辖市;21-50表示地区(自治州、盟)。 第五、六位表示县(市辖区、县级市、旗)。01-18表示市辖区或地区(自治州、盟)辖县级市;21-80表示县(旗);81-99表示省直辖县级市。 第七、十四位表示出生年月日(单数字月日左侧用0补齐)。其中年份用四位数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用1
18位身份证号码中前6位数字对应的省、市、区行政规划对照
04-19
中国大陆公民的二代身份证号码均为18位,其中前6位代表出生地所在省、市、区,第7~14位代表出生年、月、日,15~17位代表同地同日出生的人的序列号,最后一位是校验码,是根据ISO 7064:1983标准计算来的,其中X代表阿拉伯数字10。本资源提供了身份证号码前6位对应的省、市、区行政规划,可供编程爱好者依照ISO 7064:1983标准编写身份证号码校验合法性程序使用。内容仅供参考,不存在侵犯任何人权益的描述。
省市地区及6位编码(附身份证号校验程序)
05-12
1.获取全国省市地区及对应6位编码; 2.身份证号校验,并输出:性别、生日、具体省市县籍贯信息; 3.附带python源代码,dist下exe程序为打包后的程序;
身份证号码前六位所代表的省,市,区, 以及地区编码下载
10-30
身份证号码前六位所代表的省,市,区, 以及地区编码下载
身份证号的组成及校验
xyxzlsld666的博客
08-05 900
身份证号的组成及校验
身份证号码算法解析与Java代码实现
编码行者的博客
11-07 1048
中国的身份证号码是一串唯一的标识符,由18位数字组成,用于标识中国公民的个人信息。它不仅包含个人的出生日期和顺序码,还包含了地区信息。下面我们将介绍中国身份证号码的结构以及验证算法,并提供了相应的Java代码示例。
身份证算法
weixin_33859231的博客
11-26 577
公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码。其含义如下: 1. 地址码:表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。 2. 出生日期码:表示编码对象出生的年、月、日,按GB/T7408的规定执行,年...
18位身份证号验证算法的原理以及C#实现和在管理系统的应用
青松之竹_Java博客
07-10 8084
18位身份证号验证算法的原理以及C#实现和在管理系统的应用 本博文介绍一下我自主开发的企业工资管理系统中关于员工18身份证号合法性验证的原理以及采用C#实现的代码、在实际的管理系统中应用!经过我自己的测试,是可以用的,而且代码我觉得写的不错!若有哪位博友想获取我这个管理系统的源码以及相关设计文档(可以当做“毕业设计”哦),可以加我QQ:1948831260与我交流,我愿意考虑出售给你!当...
精准身份证号验证的具体实现方法 校验码计算逻辑
赵英超的博客
08-22 2055
身份证号分为两种,旧的为15位,新的为18位。 身份证15位编码规则:dddddd yymmdd xx p 其中 dddddd:地区码 yymmdd: 出生年月日 xx: 顺序类编码,无法确定 p: 性别,奇数为男,偶数为女; 身份证18位编码规则:dddddd yyyymmdd xxx y 其中 dddddd:地区码 yyyymmdd: 出生年月日...
20200216全国身份证区域编码表.xls
03-05
2020年2月份手工整理的最新身份证前6位地区编号,按照省、地市、区县分列,适合查询、匹配和索引使用。
身份证号码省市区编码表格
最新发布
06-04
最全最新身份证号码省市区编码表格可供使用
1981年-2020年最全面身份证区域编码表.xlsx
01-07
1981年-2020年11月 最全身份证与行政区划代码对应表 (身份证前六位)城市或城区 包含以前的行政区划,老证号也能查
身份证号码对应的籍贯编码文件
09-06
保存身份证编码和对应的籍贯地址,编码与地址之间通过冒号分割,一行保存一个编码,共有3513行
双随机相位编码信息加密技术的原理详细分-综合文档
05-18
双随机相位编码信息加密技术的原理详细
各省身份证区域划分与数字含义
03-18 888
另外,还特殊规定,最后三位数为996,997,998,999这4个号码为百岁老人的代码,这4个号码将不再分配给任何派出所。但由于出生人口的性别,不可能刚好出生一个男性,然后就出生一个女性,因此流水号分两组,按各自顺序号起用。一个有效的身份证有18位,由省级代码、市级代码、区县代码、出生日期、顺序码和校验码,共6部分组成。如果接下来出生的人口是男性,则他的顺序号为175,如果是女性,则她的顺序号为182。该网站可以查询身份证的发证地,再次点击“查询”按钮,可以查询身份证的有效性。
身份证号码编码规则及校验位校验算法
MrBlackWhite的博客
10-24 3万+
一、身份证号码作为独一无二代表公民信息的号码,它的组成是由一下的数字表示的: (1)第1、2位数字表示:所在省(直辖市、自治区)的代码; (2)第3、4位数字表示:所在地级市(自治州)的代码; (3)第5、6位数字表示:所在区(县、自治县、县级市)的代码; (4)第7—14位数字表示:出生年、月、日; (5)第15、16位数字表示:所在地的派出所的代码; (6)第17位数字表示性别:奇数表示男性,...
二代身份证编码规则及校验代码实现
热门推荐
embracejava
08-17 4万+
本文主要讨论的是二代身份证编码规则及其Java代码实现,下面的校验方式还不是特别严谨,由于只校验了前两位的省份信息,中间六位的出生日期信息和最后一位的校验码信息,故对于部分不满足要求的证件号码刚好同时满足了这里提到的几个条件,也会被判定为是合法的证件号码…1 二代身份证号码编码规则1.1 编码格式1999年我国颁发了第二代居民身份证号,公民身份号码为18位,且终身不变。居民身份证格式如:ABCDEF
中国省份、城市-身份证编码
MusicDancing的博客
08-28 1万+
1.中国省份邮政编码 110000,北京 120000,天津 130000,河北 140000,山西 150000,内蒙古 210000,辽宁 220000,吉林 230000,黑龙江 310000,上海 320000,江苏 330000,浙江 340000,安徽 350000,福建 360000,江西 370000,山东 410000,河南 420000,湖北 430000,湖南 440000,广东 450000,广西 460000,海南 500000,重庆 510000,四川 520000,贵州 5
中国公民身份证编号规则
yingms的专栏
11-25 1万+
这是一篇转发的文章,我对他进行了格式化而已,原文出处不详。 中国公民身份证编号规则一、身份证号码执行标准:18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》。 GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称“社会保障号码”更名为“公民身份号码”,另外GB11643-1999《公民
详细解释图像压缩中变换编码原理
05-23
图像压缩中的变换编码是一种常用的压缩方法,它的基本原理是将图像通过离散余弦变换(Discrete Cosine Transform, DCT)等变换方法转换为频域信号,再利用量化和熵编码等方法对频域信号进行压缩。 具体来说,变换编码的过程可以分为以下几个步骤: 1. 图像预处理 在进行变换编码之前,需要对图像进行预处理,如去除噪声、调整图像亮度、色彩平衡等操作,以提高压缩效果。 2. 变换 将预处理后的图像进行变换,将其从时域(空间域)转换到频域。常用的变换方法包括离散余弦变换(DCT)、离散傅里叶变换(DFT)等。 以DCT为例,DCT变换将图像分解为一系列基函数,每一个基函数代表了不同的频率成分。通常只保留高频部分(即小的DCT系数),将低频部分设置为0,从而实现对图像的压缩。 3. 量化 将得到的DCT系数进行量化,即将其转换为整数,从而减少数据量。量化系数的大小决定了压缩比,通常采用非线性量化方法,使得较小的系数得到更多的量化级,从而提高压缩效率。 4. 熵编码 将量化后的系数进行熵编码,即利用有损压缩方法对数据进行编码,使得编码后的数据占用的存储空间更小。常用的熵编码方法包括霍夫曼编码、算术编码等。 最终,将经过量化和熵编码的数据传输或保存,以实现图像的压缩。在解压缩时,需要将压缩的数据进行解码、反量化和逆变换等操作,以恢复原始图像。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 超全面详细的身份证号码编码原理,拿走不谢! 14595

分类专栏

  • 编码 1篇

最新文章

2019年1篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司咸宁百度竞价包年推广价格资阳网站搭建价格铜陵网站制作多少钱黄石企业网站建设推荐台州百度网站优化公司龙华网页设计淄博品牌网站设计民治关键词按天计费推荐诸城seo优化价格衡水关键词按天收费报价鹤壁企业网站建设公司大庆网站定制推荐锦州模板推广推荐坪地如何制作网站公司临沧网站优化福永百度关键词包年推广价格温州关键词按天计费德宏网络营销龙华关键词排名包年推广多少钱丽江SEO按效果付费多少钱德州企业网站设计固原建站多少钱锦州企业网站建设青岛企业网站制作报价运城网站推广工具公司荷坳网站搜索优化推荐遵义网站定制公司池州百度网站优化排名公司银川设计网站黔东南SEO按天计费歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化