MEID转PESN操作说明

 

MEIDPESN操作说明

 

最近应项目需求,写了一个meidpesn的转换工具,用于以后的学习和使用。

 

一、   开发背景

众所周知,CDMA手机在网络鉴权时所携带手机唯一标示符是esn/pesn/meidGSM手机则携带的是esn/imei/sn等。由于现在手机越来越多,32bitesn已经不能满足用户需求了,所以就出现了meid

现在我们来看看meid,这个东西就是以前我们所说的32bitesn的扩展版,meid56bit,我们可以通过sha1算法将meid转换成为pesn.其中pesn也是32bit,称为伪esn。目前大概有20000万多个meid,需要我们转换成为pesn

 

二、   实现方法

我们定义了2个文件,一个为输入文件,一个为输出文件,输入文件里面保存的是需要转换的meid,输出文件中保存转换完后的pesn

首先,我们从a.txt中读入我们需要的meid,并以char的形式保存到一个数组中,这里我们定义的数组里面保存14个元素,因为保存的是16进制,总共56位。

其次,将数组元素转换成为对应的值,这里有一点需要注意,meid里面的字符串有ABCDEFabcdef以及0-9之分,而16进制的Aa所代表的值都是一样的,在转换的时候需要考虑到这点。将数组元素由char转换成为8位无符号整数,

再者,将每个数组元素中的低4位取出来放到事先定义好的unsigned long的数组中,作为一个值,这个值就是我们所需要转换的meid的一部分。完成meid数组的初始化后,我们就能利用sha1算法来求pesn了,求出的pesn是一个整数值,我们需要使用fprintf()按照16进制的格式来输出。

到此为止,我们的转换就结束了。

 

三、   工具使用

工具开发好了之后,其使用起来非常简单,我们只要确保a.txt中的数字必须为14位的16进制数字,比如A1000019B01405

1、在a.txt中输入16进制的meid号码。

2、运行HexMeidToPesn.exe

3、查看b.txt中的结果。

                                                                                                                      2011-2-9

 

你可能感兴趣的:(算法,网络,扩展,手机,工具)