首页 > 其他分享 >SIM卡ICCID编码规则

SIM卡ICCID编码规则

时间:2023-04-21 13:22:24浏览次数:47  
标签:编码 SIM卡 编号 ICCID 运营商 ITU 86

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

 

标签:编码,SIM卡,编号,ICCID,运营商,ITU,86
From: https://www.cnblogs.com/lsgxeva/p/17340027.html

相关文章

  • 在线CTF工具箱--端口扫描--杂项--密码学--编码和解码
    这是为CTF发烧者准备的的工具套件,助你过关斩将、攻克难关。目前基础功能和一部分高级功能已经完成,可以在GitHub上查看工具列表和开发进度。 CTFer:https://ctfever.uniiem.com/ 项目地址:https://github.com/UniiemStudio/CTFever ......
  • 变换编码的设计与实现
    访问【WRITE-BUG数字空间】_[内附完整源码和文档]一、实验目的采用dct变换,编制对图象进行变换的程序,图象采用8x8分快。对变换系数做Z型扫描,分别采用前2、3、5、8个和全部系数恢复原图象,观察结果,给出psnr值。对变换后系数做量化,量化表采用JPEG量化表,量化过程如下:,j)=C(i,j)/Q(i,j),其......
  • 借助ChatGPT提升编码效率
    很久不写代码了,最近因为要整理周报,觉得很繁琐。就想着开发一个工具,解析Excel,然后生成周报所需要的模板实现方案:C#+EPPlus,为了能让生成的exe单独运行,特意安装了:Costura.FodyEPPLus的API很多都不太熟悉,这次操作单元格,涉及到的功能有:1、合并单元格;2、设置单元格行高、边框、背景......
  • js编码和base64
    js内部支持三组编码和解码函数,都是全局函数,可以直接使用。内部没有html编码和解码,一般是自行编写函数。也没有md5等加密解密函数,需要引入响应的工具js。另外支持base64的编码和解码,window.btoa()和window.atob函数完成。1、escape函数escape('ab123*@-_+./时间\'\"%()')//ab12......
  • Eclipse console UTF-8编码的设置
    建置全UTF-8的環境:1.在eclipse.ini的-vmargs下面加上-Dfile.encoding=UTF-82.eclipse-->Window-->Preferences-->General-->Workspace-->Textfileencoding-->UTF-83.InstalledJREs-->DefaultVMArguments:-->-Dfile.encoding=UTF-84.eclipse-->Run-->......
  • PyTorch实现堆叠自编码器
    以下是一个使用PyTorch实现堆叠自编码器的示例代码,该代码包括三个自编码器和一些辅助函数,用于训练和测试堆叠自编码器。importtorchimporttorch.nnasnnimporttorch.optimasoptimimporttorchvision.transformsastransformsimporttorchvision.datasetsasdatas......
  • PyTorch实现联邦学习堆叠自编码器
    联邦学习是一种用于训练分布在不同设备或地点的模型的技术,其中数据分布在不同的设备上,且不会离开设备。每个设备只训练其本地数据的模型,并将更新的模型参数传递给服务器,服务器对这些更新进行聚合以更新全局模型。由于不共享原始数据,因此联邦学习能够提供更好的数据隐私和安全性......
  • 在开始编码之前,问问为什么
    客户很少知道什么是对的开发者不只是生产代码,更重要的是提供问题的解决方案,代码只是(有时候并非总是)其中的副产品。昨天我写了一篇文章,讲述了顾客认为他们知道自己需要什么,但通常是错误的。一位评论者想知道-你如何得体地了解顾客真正需要什么?我所说的“顾客”有时候,你是通......
  • Redis 一、(简介,redis-linux下载,启动方式,常用配置,应用场景,数据结构和内部编码,字符类型)
    目录Redis一、Redis1、简介2、RedisLinux下载安装3、redis启动方式3、1.简单启动3、2.动态参数启动3、3.配置文件启动5、常用配置6、redis应用场景7、redis通用命令8、数据结构和内部编码9、redis字符串类型Redis一、Redis1、简介#Redis特性1)速度快10wops(每秒10万......
  • 软件行业迫切需要基于正向生成的编码模型
    逆向生成难以实现飞跃软件行业长期面临生产率瓶颈。程序员的工作强度已经接近极限,要继续提高软件交付速度似乎难上加难。近年来在开发流程和工具上,如GPT显然提供了一定的提效,但是实质上没有改变软件开发的基本模式————逆向生成。目前软件项目的大部分工作时间都花在理解“现......