0898-08980898

利盈平台EXPERTS

李某某

咨询热线

0898-08980898
地址:广东省清远市
传真:0000-0000-000

利盈APP下载

当前位置: 首页 > 利盈APP下载

印尼的身份证(KTP) 2

发布时间:2023-09-30 11:24:27 点击量:

风险提示:

1.信息来源多样,包括政府文档,网站,与当地人沟通,甚至作者的臆测,作者不对内容准确性负责;

2.作者从事相关业务,本文是作者对工作中遇到一些信息的总结,很可能存在偏颇或者不中立的地方;

3.本文的主要目标是讨论技术问题,对周边问题的提及只是为了介绍背景。对文化、政治等问题的讨论不是作者的目的。


今天专门谈一谈NIK(身份证号码),和中国一样,在印尼身份证号码是一个经常用到的半公开的信息-----之所以说“半公开”是因为很多地方都要求你提供身份证号,甚至可能以此作为索引去查询你的其他信息----这一点和美国等地的SSN使用实践有很大区别。

NIK和中国身份证号的另一个相同点是:他们都符合一定的编码规则,如果你了解这些规则,能从身份证中读出一个人的很多信息-----绝对比星座中知道的内容要多的多-----因为从NIK就能直接推算出星座:)


  • NIK的基本构成

印尼的身份证由16位阿拉伯数字构成(不含英文字母)。理论上最对可以覆盖10^16,也就是一亿亿人。显然印尼是没有这么多人的,而使用这么长的位数是为了能在编码中加入更多信息------与印尼人口相当的美国,其社会安全号码(SSN)仅有10位。

当然,对中国同学们来说,16位不算什么,因为中国的比他们还多,18位,且最后一位除了可以是数字,还可以是字母。也就是说,中国的身份证编码容量更大,更可以暗含大量信息。

由于两国的相似性,我们可以来具体比较一下中国和印尼的NIK编码规则。


先上图。下图中是两个虚构的身份证号码,上面是印尼的,下面是中国的做对照。

假想的持卡人是一个1980年1月20日出生的女性,并且在其所处的区域中,都是身份证排号第10的女性。这两个号码都是我瞎编的,如有雷同纯属巧合。这里我故意让这两个人的出生地都在普通的省市(而不是大家更熟悉的北京、雅加达等直辖市),这是因为直辖市的地区编码中”城市“这一级的信息不太明显。


我们分别用两国的编码规则编制了这个女性的身份证。图中将身份证号码的各个部门分别框出来了。并且用方框的颜色和连线标记了各个部分的意义。


总体上说,两国的编码规则是非常接近的,都可以分成三个大的部分:

1.地区码,也就是表征持证人省、市、区的号码。两国都使用了6位数字共三级的地区码,并且都放在了身份证最开始。

2.生日码:两国的身份证中都包含持卡人的完整生日。但是也存在两个区别:

a. 印尼使用的是日月年的顺序,而中国使用年月日;

b. 印尼仅使用了两位表示年份,而中国使用了4位----中国身份证多出来的两位就是从这里来的。显然,多使用两位数字可以更好的区分1918年出生的老人和刚刚出生的婴儿。这个问题在证件被多年使用以后会慢慢暴露出来-----谁都不希望自己刚出生的孩子身份证号码是从一个离世老人那边“转世投胎”来的。不过印尼这套编码体系是从11年才开始大规模使用的,这个问题暂时还不明显。

3.编号码:由于两国人口都位列全球前五,即使在同一个区域,每天也往往会有多名婴儿出生。为此,两国都使用了几位数字来对这些孩子做编号。只不过印尼使用了4位数字,而中国只使用了三位数字。因为印尼人口比中国少,而编号码反而多出了一位,所以印尼的最后这几位编号会更“稀疏”一些----中国经常会把三位编号全都用上,而在印尼最后4位经常只是0001-0005,连0010都出现不太多。


除了以上说的三大部分以外,两国的编码还有两个小差别:

A.性别码:两国都没有专门为性别留出一位。而选择将这个信息隐含在其他部分中。印尼的选择是用出生日期来表示性别:男性的生日用1-31表示,女性则在真实生日上增加40,用41-71来表示。比如上面的例子中,持卡人是1月20日出生的,所以她身份证的第7-8位是20+40=60。

而中国的选择是在编号码中隐含性别:编号码末尾(也就是身份证号第17位)单数表示男性,偶数表示女性。比如例子里这个女性,在同地区女性中排10,而女性只能用偶数码,所以她的顺序码是020。

从这一点来说,中国身份证的编号码责任还真是挺重的,本来人口就更多,号码还短了一位,甚至还要同时兼顾表示性别。这也解释了为什么很多中国人的身份证会把三位编号码都用上。


B.校验码:前面只讲了中国身份证的前17位,而最后这一位,是没有任何额外信息的。它是一个由前十七位算出来的东西。这一位放在里面的主要作用是发现抄写错误:如果你填写表格的时候,不小心写错了一位(更常见的情况是其他人录入你身份证号的时候弄错了),那么前面17位算出来的校验码就跟最后一位对不上了。这样就能识别一些简单的错误。而在印尼的身份证号中,就没有这个校验机制,所以会更有可能犯错误。


下面,我们深入来讲讲NIK各部分编码的情况。


  • 地区码


印尼全国有34个省级行政区。或者国际上更通用的说法叫做第1级行政区(ADM1):虽然印尼的第一级行政区也叫作“省”,但人家的第二级(ADM2)和第三级(ADM3)并不叫做“市”和“区”。所以国际上讨论地理区域的时候,是叫做1-4级行政区,至于各个国家的每级行政区愿意怎么叫,那就是自己的事情了。(默认显示的分辨率不高,点击看原图应该是清晰的)

上图是印尼的所有一级行政区和他们对应的省编码,这个列表在印尼政府的网站可以找到[1]

我就不费劲去把每个省的名字翻译成中文了,估计那样大家反而更不容易看懂。其实当地的地名跟中国也蛮像的,无非就是X南,Y东,Z中之类的。只不过把中国的山、河、湖换成了苏门答腊、加里曼丹、爪哇。常见的东南西北等常用字在这里有个整理[3]


印尼的国土面积是190w平方公里[2],只有中国的1/5。但两国省级行政区的数量差不多。所以大致上,印尼的一个省是中国的1/5。


稍微看看上面的省编码,可以发现一个情况:一共才30多个省,居然省编码从11到94都用上了。

为了理解这个现象,就要说到印尼的“地区“概念:虽然印尼全国一共有16000多个岛,但是大体上,从西到东可以分为以下几个部分:


马六甲海峡下面的苏门答腊,人口最集中的爪哇(也做Java,对的,就是程序开发那个),与马来西亚共享的卡里曼丹(以前华人叫做婆罗洲)。

巴厘岛所在的东努沙登加拉群岛,这个群岛的右边就是帝汶岛。其中西帝汶属于印尼,而东帝汶就是那个东帝汶。

加里曼丹东边的是苏拉威西,然后是摩鹿加群岛。而最东边是新几内亚----这个岛也叫巴布亚,印尼占了一半,另外一半是个独立的国家,就叫巴布亚新几内亚。


看懂了这几个区域,就能发现,其实各个省编码的第一位是由他所在的地区决定的。比如雅加达在爪哇岛,所以他的编码是31----即使是首都,也没让他当10,因为所在区域就把第一位决定了。


唯一有个特别的情况是苏门答腊与加里曼丹之间的"廖内",这个省其实一共没多大,传统上也没有能成为全国几大地区之一。但是他独享了2字头。我个人的理解是,这个省是后来建的(貌似是2003年),而当时苏门答腊已经把11-19的编号都分完了。所以这个廖内没办法,只好另起了2字头。


顺便提一句,4字头目前是故意留空的(可能是为了以后应付廖内这样的情况)。所以如果谁的假NIK是4开头的,那就太不走心了^_^。而对于开发测试来说,则可以把4字头的号段用来留作内部测试,可以保证不会跟真实数据撞上。


实际上,这种按照地区决定省编码首位的方法,中国也同样在使用。比如东北是2字头,西南是5字头。只不过中国各省都在一片大陆相邻,历史原因造成省界又不像美国那么整齐,所以各字头之间的边界也就不是那么清晰了。


理解了上面的区域划分,再认清东南西北中几个字,基本就能对印尼的第一级行政区有个大概的掌握了。


下面就来看看二级行政区。印尼全国有500个左右的第二级行政区。也就是说,每个省平均有十几个二级单位。


每个二级行政区的大小,可以从下面的图中找找感觉。不同的省份尽量使用了不同的色调,而在每个色调内又用颜色的深浅表示不同的二级行政区。从这个图不难看出,全国行政区划最碎片化的区域是爪哇岛,其次是苏门答腊岛。这主要是因为这些区域的人口更加集中,经济也更发达。而地广人稀的新几内亚,每个行政区的面积就大得多。这与在中国的情况也是类似的。


如果我们用颜色来表示每个ADM2的人口数,可以更好的看清楚当地的人口分布。下图中,最深的颜色表示50w人口(很多区域超过50w,也用最深表示),而最浅的颜色表示1w人口。

可以明显的看出,虽然爪哇岛的每一个ADM2面积都非常小,但是人口基本都在50w以上(实际上很多远超过这个数)。而在其他区域,则一方面每个ADM2的面积都更大,且人口还少很多,最明显的依然是新几内亚。



当然,我们还可以继续看ADM3下面的数据。但是这样就太细了,甚至很多时候人眼已经难以分辨了。比如下图[4]中爪哇岛之所以看起来是灰色,是因为上面是密密麻麻的ADM3边界。

分析身份证号码对应ADM3的编码,还会遇到另外一个问题:一个国家的行政区划不是一成不变的。比如前面提到的03年新建的廖内。而越是细分的行政区,越容易做调整。而这些都会让身份证号码中出现一些特殊情况-----比如北京的东城区身份证,一些是110102(对应东城),还有相当部分是110104(以前崇文区遗留下来的)。印尼同样有类似的问题。


  • 地区码的确定

说了这么多,是不是以为终于搞明白地区码了。其实不然,还有一个非常重要的事情没谈:

地区码到底是持卡人目前的所在地,还是出生地?

基于国内的经验,第一反应都是“出生地”。理论上来讲,这个答案可以算对:印尼跟中国一样,身份证号码是终生制的(而护照号码则不是)。未来不管是证件遗失补办,证件到期换发,还是户口迁移,改名,身份证号码都保持不变(中国唯一的例外是变性[5])。这种安排有非常多的好处,特别是当你的其他资料都基于身份证时,保持号码不变可以免去非常多麻烦(想想每次换手机号时到处去变更信息)。那么既然号码是终生制,似乎地区码就应该是由出生地决定的。

但实际情况则远比这个复杂:因为e-KTP前几年才陆续推行,大部分人是在当前所在地换发的二代证,并且重新生成的序号。所以对于这一批人,他们的地区码其实是反应的所在地,而不是出生地------实际上,中国84年开始推行身份证政策的时候,也是同样操作的(所以84年以前户口进京的外地人,身份证也是110开头的)。只不过后来一代证变更二代证的时候是直接用一个公式转换的,地区码没变,所以现在大部分年轻人的身份证号码都是按照出生地确定的。


严格的来说,对目前大部分人来说,NIK地区码既不是出生地,也不是当前住址,而是发证时候的住址。只不过因为二代证整体推行时间还不长,所以发证时候的住址和当前的住址差别并不大。


我做过一个发证后3年各省人口迁移率的表,是通过比较公民的当前住址和身份证地区码得到的(有空找出来)。总体上看,3年内的迁徙很少,各省在0.5%-5%的范围-----这和中国的情况很不一样。因为中国现行身份证地区码是84年就开始用的,所以每个省市都有大量外地地区码的人,即使按照户籍口径统计。


  • 编号码

我们把身份证的最后几位叫做编号码,因为当同一个地区,同一天,同一个性别,有多个孩子时,需要用这几位来做排序,避免产生重复的身份证。这就让一些人以为这几位完全是顺序编码的: 从0001开始,一个一个往下排[6]。

实际情况却并不总是这样。这要从底层民政部门的实践说起:一个三级地区码下面覆盖的人口可能是相当大的(比如在爪哇岛的一些区域),也可能面积是相当大的(比如一些岛屿,印尼一共有16000个岛,住人的有6000个)。民政部门可能存在很多个办证受理点。一个受理点不一定能实时的掌握其他受理点编号到多少了,如果要严格顺序编号,就必须等所有受理点把办证申请全部汇总以后,再统一编号。为了在保证不重复的条件下,又简化流程,在一些情况下,就会存在各个受理点分配号段的情况:A站从1号开始编;B站点从100号开始编;C站点从200开始编。前面提到,相比起中国的身份证,印尼NIK在编号码上留得非常足,即使是这样很随意的分号段,也完全够用。


中国以前在一些区域应该也做过类似的操作,不过由于中国的编号码没有那么富裕,所以一不小心也许两个站点就重复上了。这可能是中国一部分重复身份证号码的来源。


总之,这种不连续编号的情况是存在的。所以虽然绝大多数时候你看到的NIK都是0001-0020结尾的,但是如果某天真的见到一个1001或者0101结尾的KTP,也不要直接断定就是假证。更不要惊诧于他所在的区域到底有多少人。更大的可是,他只不过碰巧是B站的第一个用户。


  • 其他冷知识

除了标准的16位身份证,因为种种历史原因和操作问题,印尼还存在从6位到17位不等的NIK长度。当然,这个在中国也不稀奇,到现在还在一些记录中能看到16位的身份证号码。

印尼存在两个人身份证号完全相同的情况,(我见过)。当然这是极少数情况,肯定属于bug范畴。其实中国一样有这样的情况,基本都是基层派出所失误造成的。这种情况很麻烦,特别是当其他证件都是严格基于身份证号码时-----比如身份证重复的人在大部分银行是不能开户的,因为银行数据库中这个主键已经被别人占用了......因为印尼实行二代证时间还不长,所以似乎还没有很严格的实行身份证证与各种账户的绑定,对于有重复身份证的人限制还没有那么大,但是以后的趋势肯定是越来越紧的。


[1]kemendagri.go.id/media/

[2]en.wikipedia.org/wiki/I

[3]gov.uk/government/uploa

[4]revolutionarygis.wordpress.com

[5]guokr.com/question/4521

[6]brilio.net/news/ini-rah

咨询热线:0898-08980898
站点分享:
友情链接: 凤凰 天游 富联 天富 耀世
电话:0898-08980898
传真:0000-0000-000
地址:广东省清远市
Copyright © 2012-2018 首页-利盈娱乐-注册登录中心    
ICP备案编号:琼ICP备xxxxxxxx号

平台注册入口