有关CDMA2000 写号IMSI_M计算

本文详细介绍了如何将数字格式的IMSI转换为CDMA2000文件系统6F22(EF_IMSI_M)中所需的格式,并通过具体实例展示了计算过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 有关CDMA2000写号时IMSI_M计算,如果你选择和我一样看协议的话,本文下面你可以不用看了,直接看协议第六章 IS95B
测试方提供一个IMSI号刷到UIM卡里面,这就需要把数字格式的IMSI转换成CDMA2000文件系统6F22(EF_IMSI_M)中要求的格式。
6F22格式:
    
    00 AA AA BB BB BB CC 80 DD DD


    00代表CLASS=0
    AA AA根据MIN前3位计算
    
    BB BB BB根据MIN后7位计算
    
    CC根据MNC计算
    
    80代表IMSI_M_PROGRAMMED=1、IMSI_M_ADD_NUM=0
    
    DD DD根据MCC计算
    
    
计算AA AA:
     选中MIN前3位,分成三个个位数,分别是D1、D2、D3
     计算NUM = D1 * 100 + D2 * 10 + D3 - 111(如果D1、D2、D3中出现0,则当作10计算)
     NUM转换为2字节小端格式16进制,位数不足前面补0。
 计算BB BB BB:
     以MIN第4-6位为数据,按照AA AA 计算方法算出NUM,将NUM转换为10bit的2进制,不足补0
     将MIN第7位单独取出来,按照标准10进制的计算方法,计算出4bit的2进制,不足补0
     以MIN第8-10位为数据,按照AA AA计算方法算出NUM,转为10bit的2进制
     将上述3步的得出来的2进制数拼起来,转换成3进制的小端格式1进制
计算CC:
    把MNC分割成2个个数,分别是D1、D2
    NUM = D1 * 10 + D2 - 11(如果D1、D2中出现0,则当10计算)
    将NUM转换为1字节16进制
计算DD DD:
    以MCC为数据,按照AA AA计算方法,得出2字节小端格式16进制


例子:
    Imsi:46003 096 645 2 459
    MSI_M_S2根据MIN中的096进行按照协议规则计算值为985对应的IMSI_M_S2:D9 03


    IMSI_M_S1根据MIN中的后7为进行根据协议规则计算分别为:


    645计算结果为:534  对应二进制值为:1000010110
    2计算结果为:  2  对应二进制值为:0010
    459计算结果为:348  对应二进制值为:0101011100


    上面这3个值合并后二进制为100001011000100101011100 = 0x 85 89 5C,3字节小端格式0x5C8985
    MNC为03,NUM = 92,1字节16进制为5C
    MCC为460,NUM = 359,2字节16进制小端格式 67 01
    因此 6F22 文件内容为
    
         00 D9 03 5C 89 85 80 67 01
    当然由IMSI_M也可以推出IMSI,计算AA AA时可以明确网络制式,利用十六进制的位数相同或者余数很容易算出来
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值