IMEI 码的校验和生成

article/2025/11/6 14:59:54

IMEI 码的校验和生成

文章目录

  • IMEI 码的校验和生成
    • IMEI 码
    • Luhn算法
    • 代码实现C

IMEI 码

IMEI 码,即手机的串号。它是 International Mobile Equipment Identity( 国际移动设备身份) 的简称,就像是手机的身份证,是用来帮助辨别手机身份真伪的。
 
第一部分 TAC,Type Allocation Code,类型分配码,由8位数字组成(早期是6位), 是区分手机品牌和型号的编码,该代码由GSMA及其授权机构分配。其中TAC码前两位又是分配机构标识 (Reporting Body Identifier),是授权IMEI码分配机构的代码,如01为美国CTIA,35为英国BABT,86为中国TAF。

第二部分 FAC,Final Assembly Code,最终装配地代码,由2位数字构成, 仅在早期TAC码为6位的手机中存在,所以TAC和FAC码合计一共8位数字。FAC码用于生产商内部区分生产地代码。

第三部分 SNR,Serial Number,序列号,由第9位开始的6位数字组成,区分每部手机的生产序列号。

第四部分 CD,Check Digit,验证码,由前14位数字通过 Luhn算法计算得出。

第五部分 SVN,Software Version Number,软件版本号, 区分同型号手机出厂时使用的不同软件版本,仅在部分品牌的部分机型中存在。

MEI码由GSM(Global System for Mobile Communications,全球移动通信协会)统一分配,授权BABT(British approvals Board of Telecommunications,英国通信认证管理委员会)审受。
在TS.06 IMEI Allocation and Approval Process中规定IMEI校验应该通过Luhn算法计算,如下图所示:

在这里插入图片描述

Luhn算法

在这里插入图片描述

代码实现C


//返回iemi第15位校验位
uint8_t MainWindow:: GetIMEICheckDigit(uint8_t *pp_Imei)
{int i;int vl_Sum1 = 0, vl_Sum2 = 0, vl_Total = 0;int vl_Temp = 0;for (i = 0; i<14; i++){/*(1)将奇数位数字相加(从1开始计数)*/if ((i % 2) == 0){vl_Sum1 = vl_Sum1 + pp_Imei[i] ;}else{/*(2)将偶数位数字分别乘以2,分别计算个位数和十位数之和(从1开始计数)*/vl_Temp = (pp_Imei[i]) * 2;if (vl_Temp < 10){vl_Sum2 = vl_Sum2 + vl_Temp;}else{vl_Sum2 = vl_Sum2 + 1 + vl_Temp - 10;}}}/*(1)+(2)*/vl_Total = vl_Sum1 + vl_Sum2;/*如果得出的数个位是0则校验位为0,否则为10减去个位数 */if ((vl_Total % 10) == 0){return 0;}else{return (10 - (vl_Total % 10) );}
}

Qt 程序实现界面:
在这里插入图片描述
软件下载地址:
https://download.csdn.net/download/qq_21291397/38389253


http://chatgpt.dhexx.cn/article/8dFk9086.shtml

相关文章

Android获取手机设备识别码(IMEI)和手机号码

最近看了下获取手机设备ID和手机信息以及SIM的信息例子&#xff0c;主要还是借鉴别人的&#xff0c;现在自己写一下&#xff0c;算是巩固加深了&#xff0c;也希望能给大家一个参考 必要的条件还是一部真机&#xff0c;SIM卡或者UIM卡。 首先&#xff0c;在AndroidMainfest.x…

手机设备标识码(IMEI、MEID、UDID、UUID、ANDROID_ID、GAID、IDFA等)

文章目录 Android篇1 IMEI和MEID2 DeviceId3 mac地址4 ANDROID_ID5 UUID6 OpenUDID7 Serial Number8 IDFA9 GAID iOS篇1 IMEI2 IDFA3 mac地址4 UDID5 UUID6 如何正确的获取设备的唯一标识7 什么是钥匙串 Android篇 1 IMEI和MEID (1) IMEI (International Mobile Equipment Id…

什么是IMEI / MEID?他们有什么不同?

摘要: 最近小编了解到一个新的概念&#xff1a;MEID码。说实话&#xff0c;一开始小编并不了解这是个什么。小编以为是不是打字的时候打错了啊&#xff0c;是不是要了解的是IMEI码呢&#xff1f;后来百度了一下才知道我理解错了。小编就做一回好学生&#xff0c;在苹果手机找回…

手机IMEI码规则介绍

2019独角兽企业重金招聘Python工程师标准>>> 手机IMEI码由15-17位数字组成。 第一部分 TAC&#xff0c;Type Allocation Code&#xff0c;类型分配码&#xff0c;由8位数字组成&#xff08;早期是6位&#xff09;&#xff0c;是区分手机品牌和型号的编码&#xff0c…

android 华为 imei,华为手机怎么查看IMEI码?华为手机查询IMEI串号两种方法,华为imei...

华为手机怎么查看IMEI码&#xff1f;华为手机查询IMEI串号两种方法&#xff0c;华为imei 每一部手机的串号都是不同的&#xff0c;如果想要查看华为手机的IMEI串号&#xff0c;我们该怎么样来查询呢&#xff1f;下面一起来看看操作的方法吧。 华为手机查询IMEI串号两种方法 方法…

IMEI是什么? 怎样查手机串号IMEI

IMEI的基本含义 IMEI&#xff08;International Mobile Equipment Identity&#xff0c;移动设备国际识别码&#xff0c;又称为国际移动设备标识&#xff09;是手机的唯一识别号码。我们从这个缩写的全称中来分析它的含义&#xff1a;“移动设备”就是手机&#xff0c;不包括便…

智能手机串号IMEI码丢失(无效IMEI)解决恢复办法

本方法本少爷亲测可行&#xff0c;故做一记录如下&#xff1a; 准备工作&#xff1a; 1、手机已经ROOT。没有ROOT的下载ROOT大师即可ROOT。 2、下载移动叔叔工具箱 3、下载MTK6575主板序列号及IMEI生成器 详细步骤 1、记录你的手机IMEI串号&#xff1a;IMEI串号&#xff0c;可以…

手机的imei号的获取

手机的设备信息&#xff0c;是我们在做证书验证的时候不可缺少的&#xff0c;这里我会写一些我们常用的手机信息获取办法。TelephonyManager是我们手机管理的一个大的类&#xff0c;继承的Object。 1核心代码和权限 Context.getSyste…

获取手机唯一识别码IMEI

前言 获取IMEI相信大家非常熟悉&#xff0c;但是项目中使用时&#xff0c;发现当手机卡为电信的时候&#xff0c;获取的并不是IMEI&#xff0c;而是MEID&#xff0c;什么是MEID&#xff0c;为什么会出现这种情况呢&#xff1f; IMEI国际移动设备识别码&#xff08;IMEI&#xf…

IMEI、IMSI、ICCID、SN是什么?意义和区别?通信模组或手机的唯一识别码

最近在做几个4G移动端的产品&#xff0c;初入行门有很多生涩的名词。想获取一个全球唯一ID作为设备后台管理编号&#xff0c;就扯出了 IMEI、IMSI、ICCID、SN 这几个东西。 IMEI IMEI&#xff1a;国际移动设备识别码 &#xff08;International Mobile Equipment Identity&…

ProtcolBuffer基础原理

Protocol Buffer由Google出品的一款轻量而高效的数据序列化和反序列化的方法,下面的我们来介绍一下Protocol Buffer的内部实现原理。 1.类实例 编码包括数据的编解码和函数方法的还原 2.ProtcolBuffer的数据类型 TypeMeaningUsed For0Varintint32, int64, uint32, uint64,…

ADI Blackfin DSP处理器-BF533的开发详解13:LDF内存分配的详解(含源代码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 ADSP上的LDF&#xff08;Linker Description Files&#xff09;连接器描述文件是处理器用来进行资源分配的文件&#xff0c;通过对LDF文…

M4内核的FPU/DSP使用总结

FPU简介 近年&#xff0c;在Cortex-M3之后ARM公司又推出Cortex-M4内核&#xff0c;ARM Cortex-M4处理器是由ARM专门开发的最新嵌入式处理器&#xff0c;在M3的基础上强化了运算能力&#xff0c;新加了浮点、DSP、并行计算等。Cortex-M4处理器的最大亮点之一&#xff0c;也是本文…

【STM32F407的DSP教程】第37章 STM32F407的FIR低通滤波器实现(支持逐个数据的实时滤波)

完整版教程下载地址&#xff1a;http://www.armbbs.cn/forum.php?modviewthread&tid94547 第37章 STM32F407的FIR低通滤波器实现&#xff08;支持逐个数据的实时滤波&#xff09; 本章节讲解FIR低通滤波器实现。 目录 37.1 初学者重要提示 37.2 低通滤波器介绍…

【STM32F429的DSP教程】第41章 FIR滤波器的群延迟(重要)

完整版教程下载地址&#xff1a;http://www.armbbs.cn/forum.php?modviewthread&tid94547 第41章 FIR滤波器的群延迟&#xff08;重要&#xff09; 本章节为大家介绍FIR滤波器的群延迟问题。 目录 41.1 FIR滤波后的群延迟 41.2 总结 41.1 FIR滤波后的群延迟 波…

STM32F407 DSP+FPU进行FFT变换(2)

STM32F407 DSPFPU进行FFT变换 接着上一篇继续&#xff0c;要用FFT运算的话&#xff0c;F4有FPU和DSP库&#xff0c;可以很方便让我们去对数据进行傅氏变换。首先得配置好DSP库和FPU。 配置DPS库和FPU CubeMX一般是默认配置开启FPU&#xff0c;但是DSP库需要自己去添加。这里…

【STM32F407的DSP教程】第41章 FIR滤波器的群延迟(重要)

完整版教程下载地址&#xff1a;http://www.armbbs.cn/forum.php?modviewthread&tid94547 第41章 FIR滤波器的群延迟&#xff08;重要&#xff09; 本章节为大家介绍FIR滤波器的群延迟问题。 目录 41.1 FIR滤波后的群延迟 41.2 总结 41.1 FIR滤波后的群延迟 波…

Powell算法、Powell修正算法_matlab仿真

1.鲍威尔基本算法的运算流程 1.采用坐标轮转法顺次沿n个坐标轴方向[e1,e2,...,en]进行一维搜索。然后以初始点X(0)和终点Xn(1)构成一个新的方向S(1)&#xff0c;并以此方向为搜索方向在做一维搜索得到极小值点X(n1)(1)。 2.去初始点X0(2)X(n1)(1)&#xff0c;并去掉元搜索方向组…

SVPWM仿真和基于DSP28335的PIL(处理器在环) 仿真模型(将matlab仿真算法生成代码在DSP中在线运行返回数据给Matlab)验证算法可行性和实时性

SVPWM仿真和基于DSP28335的PIL(处理器在环) 仿真模型&#xff08;将matlab仿真算法生成代码在DSP中在线运行返回数据给Matlab&#xff09;验证算法可行性和实时性。 对于数字信号处理很有用。 ID:73400638006173885书院街登山的兰瓜

非极大值抑制算法(NMS)及python实现

在目标检测中&#xff0c;常会利用非极大值抑制算法(NMS)对生成的大量候选框进行后处理&#xff0c;去除冗余的候选框&#xff0c;得到最具代表性的结果&#xff0c;以加快目标检测的效率。即如下图所示&#xff0c;消除多余的候选框&#xff0c;找到最佳的bbox。 NMS算法过程…