SIM卡ICCID编码规则
SIM卡ICCID编码规则
来源 https://www.zhihu.com/question/51968777
2018.09更新中国大陆PLMN数据,src:Mobile country code
移动白卡:00101
电信白卡:46099
2018.03.28更新:
根据百度百科的更新,中国三家运营商的编码如下
中国移动的为:898600;898602 ,中国联通的为:898601、898606、898609,中国电信898603。
谢邀。
1、SIM卡ICCID编号规则是什么?
根据国际电信联盟定义(ITU-T, ITU-T Recommendation E.118, The international telecommunication charge card, Revision history,Revision "05/2006"),ICCID为PAN(primary account number),校验使用Luhn算法。
The number is composed of the following subparts:
Issuer identification number (IIN)
Maximum of seven digits:
- Major industry identifier (MII), 2 fixed digits, 89 for telecommunication purposes.
- Country code, 1–3 digits, as defined by ITU-T recommendation E.164.
- Issuer identifier, 1–4 digits.
Individual account identification
- Individual account identification number. Its length is variable, but every number under one IIN will have the same length.
Check digit
- Single digit calculated from the other digits using the Luhn algorithm.
第一部分是IIN,最多7位,前两位为固定编号,89标识为电信用途。接下来CC是国家代码,1-3位,由ITU-T recommendation E.164.定义。各个国家地区代码参考List of country calling codes。然后II是运营商代码,1-4位,统一国家地区长度固定。例如我国的三个运营商中国移动,中国联通,中国电信分别为00,01,03。
第二部分是独立账户识别码,这个根据不同运营商有不同的规则,但同一运营商自己的规则一定。我国运营商情况我不是很了解,参考的百度百科,如有错误请指正:
中国移动
898600MFSSYYGXXXXXXP
89: 国际编号
86: 国家编号,86:中国
00: 运营商编号,00:中国移动
M: 号段,对应用户号码前3位
0:159 1:158 2:150
3:151 4-9:134-139 A:157
B:188 C:152 D:147 E:187
F: 用户号码第4位
SS: 省编号
北京01 天津02 河北03 山西04 内蒙古05 辽宁06 吉林07
黑龙江08 上海09 江苏10 浙江11 安徽12 福建13 江西14
山东15 河南16 湖北17 湖南18 广东19 广西20 海南21
四川22 贵州23 云南24 西藏25 陕西26 甘肃27 青海28
宁夏29 新疆30 重庆31
YY: 编制ICCID时年号的后两位
G: SIM卡供应商代码
0:雅斯拓 1:GEMPLUS 2:武汉天喻 3:江西捷德 4:珠海东信和平
5:大唐微电子通 6:航天九州通 7:北京握奇 8:东方英卡
9:北京华虹 A :上海柯斯
X…X: 用户识别码
P: 校验位
中国联通
898601YY8SSXXXXXXXXP
89: 国际编号
86: 国家编号,86:中国
01: 运营商编号,01:中国联通
YY: 编制ICCID时年号的后两位
8: 中国联通ICCID默认此为为8
SS:2位省份编码
10内蒙古 11北京 13天津 17山东 18河北 19山西 30安徽 31上海 34江苏
36浙江 38福建 50海南 51广东 59广西 70青海 71湖北 74湖南 75江西
76河南 79西藏 81四川 83重庆 84陕西 85贵州 86云南 87甘肃 88宁夏
89新疆 90吉林 91辽宁 97黑龙江
X…X: 卡商生产的顺序编码
P: 校验位
中国电信
898603YYXMHHHXXXXXXP
89:国际编号
86:国家编号,86:中国
03:运营商编号,03:中国电信
YY:编制ICCID时的年号(取后两位),如‘09’代表2009年
M :保留位,固定为0
HHH:本地网地区代码,位数不够前补零。如上海区号为021,则HHH为'021’;长沙区号为0731,则HHH为‘731’,测试卡代码为001
XXXXXXP:7位流水号,建议前2位作为批次号
最后是校验位。
需要注意的是,虽然这个编码规范给出的是19位的编码定义,但是由于ETSI关于GSM的规范定义(ETSI, ETSI Recommendation GSM 11.11, Specifications of the SIM-ME Interface, Version 3.16.0)是使用10个8进制字符,即20位10进制数字,所以有些运营商使用的是19位,有些是20位。
2、编码依照的是哪个国家标准?
如前面所说,这个编码是国际电信联盟出的。
IIN部分可参考ITU公布的文档Operational Bulletin No. 1040 (15.XI.2013) and Annexed List:
List of issuer identifier numbers for the international telecommunication charge card (In accordance with Recommendation ITU-T E.118 (05/2006)) (Position on 15 November 2013)
IAI部分各个运营商都有自己的规则,这个就没什么标准了。
3、编号中是否都有校验码可以通过正则表达式校验?
并不是。
虽说规范里要求最后一位为校验位,但是由于不同运营商的IAI部分规则并不统一,比较混乱,某些情况下回导致其编码中并没有校验位。
=========== End