IMEI校验码算法:

(1).将偶数位数字分别乘以2,分别计算个位数和十位数之和

(2).将奇数位数字相加,再加上上一步算得的值

(3).如果得出的数个位是0则校验位为0,否则为10减去个位数

如:35 89 01 80 69 72 41 偶数位乘以2得到5*2=10 9*2=18 1*2=02 0*2=00 9*2=18 2*2=04 1*2=02,计算奇数位数字之和和偶数位个位十位之和,得到 3+(1+0)+8+(1+8)+0+(0+2)+8+(0+0)+6+(1+8)+7+(0+4)+4+(0+2)=63 => 校验位 10-3 = 7

package com.test.main;

public class IMEIGen {

/**

* @param args

*/

public static void main(String[] args) {

String code = "35254112521455";

String newCode = genCode(code);

System.out.println("======"+newCode);

System.out.println(code+newCode);

}

public static String genCode(String code){

int total=0,sum1=0,sum2 =0;

int temp=0;

char [] chs = code.toCharArray();

for (int i = 0; i < chs.length; i++) {

int num = chs[i] - '0'; // ascii to num

//System.out.println(num);

/*(1)将奇数位数字相加(从1开始计数)*/

if (i%2==0) {

sum1 = sum1 + num;

}else{

/*(2)将偶数位数字分别乘以2,分别计算个位数和十位数之和(从1开始计数)*/

temp=num * 2 ;

if (temp < 10) {

sum2=sum2+temp;

}else{

sum2 = sum2 + temp + 1 -10;

}

}

}

total = sum1+sum2;

/*如果得出的数个位是0则校验位为0,否则为10减去个位数 */

if (total % 10 ==0) {

return "0";

}else{

return (10 - (total %10))+"";

}

}

}

java imei_JAVA 实现 IMEI校验码算法相关推荐

  1. Java生成CRC16数据校验码

    CRC即循环冗余校验码(Cyclic Redundancy Check[1]  ):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定.循环冗余检查(CRC)是一种数 ...

  2. 【详细说明】二代身份证号码的组成结构(含校验码算法与行政区划代码)

    文章内容:二代身份证号码的组成结构(含校验码算法与行政区划代码) 关键词组:身份证号码.组成.校验码.行政区划码 使用软件:无 虚拟环境:无 操作系统:Windows 11 文章目录 一.身份证号码划 ...

  3. Java身份证号码严格验证(第18位校验码算法实现)

    /*** 身份证号码的格式:610821-20061222-612-X 由18位数字组成:前6位为地址码,第7至14位为出生日期码,第15至17位为顺序码,* 第18位为校验码.检验码分别是0-10共 ...

  4. 海明校验码算法和纠错

    背景介绍 由Richard Hamming于1950年提出.还被广泛采用的一种很有效的校验方法,是只要增加少数几个校验位,就能检测出二位同时出错.亦能检测出一位出错并能自动恢复该出错位的正确值的有效手 ...

  5. 公民身份号码校验码算法(C#版)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  6. GB/T 17710-1999 PHP生成校验码

    校验码算法描述如下:详细:http://wenku.baidu.com/link?url=CDvNJ1sLYOPzbbxjEy5R-oME95RlfTCUU5-I5M0bqUt0I32b0Xd0EKm ...

  7. 异或校验 java_Java生成异或校验码、和校验码、CRC校验码、补码求和校验码四种校验码及校验码匹配工具类...

    Java生成异或校验码.和校验码.CRC校验码.补码求和校验码四种校验码及校验码匹配工具类 /** * 报文校验码验证规则 */ public class Verification { /** * 校 ...

  8. java偶校验计算代码_191120_02 Java常用加密校验转换算法汇总

    Java常用加密校验转换算法汇总 作者:邵发 官网:http://afanihao.cn/java 本文是Java学习指南系列教程的官方配套文档.内容介绍Java里的常用算法的使用,包含转换Hex / ...

  9. android MD5校验码的生成与算法实现

    android MD5校验码的生成与算法实现 在Java中,java.security.MessageDigest (rt.jar中)已经定义了 MD5 的计算,所以我们只需要简单地调用即可得到 MD ...

最新文章

  1. ASP.NET的一套笔试题
  2. linux系统上搭建vsftp服务
  3. 推荐6个HTML5编辑器
  4. 输出php数组结构,在PHP中输出数组结构使用 函数 。
  5. JVM的堆、栈、方法区
  6. Stereo matching code
  7. CodeForce 168 C——Wizards and Trolleybuses
  8. Web前端求职必备 常见前端面试题汇总(二)
  9. 如何用 GitHub Actions 写出高质量的 Python代码?
  10. Python练习-装饰器版-为什么我的用户总被锁定
  11. java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal
  12. HMM,MEMM,CRF模型的比较
  13. 截图工具-Snipaste绿色正式版
  14. 数据结构分类及八种常见数据结构
  15. 数学三次危机(四)第一次数学危机
  16. linux中的网络指令ssh ifconfig netstat telnet curl scp
  17. 蛙蛙推荐:蛙蛙教你文本聚类 - 蛙蛙王子 - 博客园
  18. 使用 IDEA 远程 Debug 调试
  19. 【转】完美解决iphone连电脑蓝牙出现bluetooth外围设备无法正确安装
  20. 如何让开源项目成为你的良师益友

热门文章

  1. 前端自学路线图之前端自学大纲
  2. 【CNN-VGGNet】
  3. 网络分层(OSI7层模型和TCP/IP四层模型)
  4. 苹果电脑如何使用pc键盘?
  5. 如何选用计算机硬盘,组装电脑选择硬盘技巧?怎么挑选硬盘才好?
  6. 如何正确区分儿童过敏性鼻炎与普通感冒?| 健康科普
  7. “生鲜蔬”APP的设计与实现
  8. 如何使自己的笔记本电脑的扬声器插上耳机可以发声
  9. maven环境变量配置详细步骤(win10)
  10. php 文件 byte数组,php实现java的byte数组转换